为了账号安全,请及时绑定邮箱和手机立即绑定

Java编程OCP(开闭原则)学习笔记

标签:
Java

计算机中的代码===>现实世界的规律

  • 将实际业务中的需求 业务 ===>映射 投影 到我们的代码中

稳定是相对的;将不稳定代码封装隔离起来

  • 统一管理不稳定的代码;保证其他代码的稳定性(IOC)

理论知识

  • 单纯的interface可以统一方法,但是它不能统一对象实例化
  • 面向对象主要做两件事:实例化对象/调用方法(完成业务逻辑)
  • 只有一段代码中new的出现,才能保持代码的相对稳定,才能逐步实现OCP
  • 上面的这句话知识表象,实质是一段代码如果要保持稳定,就不应该负责对象的实例化
  • 对象的实例化是不可能消除的,只是以某种方式封装隔离,把对象实例化的过程,转移到其他代码片段里
  • 代码中总是会存在不稳定,隔离这些不稳定,包装其他代码的稳定
  • 变化(客户需求–现实世界的规律)造成不稳定
  • 配置文件属于系统外部的(xml/注解),而不属于代码本身

interface --接口统一方法

  1. 针对一个实例的对个方法进行统一管理,实现类完成具体方法的编写
  2. public interface Skill { void q(); void w(); void e(); void r(); }

factory–使用工厂模式统一实例化

  1. 具体业务类无需再new对象,保持业务对象的稳定
  2. public static void main(String[] args) {
    String name = getPlayerInput();
    // 将下面操作让工厂去完成
    // Skill skill;
    // switch (name) {
    // case “Diana”:
    // skill = new Diana();
    // break;
    // case “Camille”:
    // skill = new Camille();
    // break;
    // case “Irelia”:
    // skill = new Irelia();
    // break;
    // default:
    // throw new IllegalStateException("Unexpected value: " + name);
    // }
    /**
    * 形成一个相对稳定的方法–不用自己实例化,统一方法
    */
    // 使用工厂模式统一实例化
    Skill skill = HeroFactory.getHero(name);
    // 使用接口统一方法
    skill.r();
    }

OCP

IOC/DI–抽象工厂模式(ApplicationContext)

  • DIP 依赖倒置 不在实例化对象;我们依赖抽象(上层);抽象不依赖细节
  • DI 依赖注入(容器生成对象…注入使用) 属性注入/构造注入/接口注入…
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消