JAVA设计模式--读书笔记一

开闭原则(对修改封闭,对扩展开放)

        解决问题的关键在于抽象化。在面向对象编程里面可以给系统定义出一个不再更改的抽象设计(JAVA的抽象类或JAVA接口规定出所有具体类必须提供的方法的特征),这个抽象层预见了所有的可能扩展(理想状态),这使得这个抽象层不需要修改。从而满足了"开-闭"原则的第一条“对修改关闭”。

      同时,由于抽象层导出一个或多个新的具体类可以改变系统的行为,因此系统设计对扩展是开放的,这就满足了"开-闭"原则的第二条“对扩展开放”。 

      开闭原则从另一个角度描述就是“对可变性的封装”。对可变性的封装意味这两点:

     (1)一种可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里面。

      (2)一种可变性不应当与另一种可变性混合在一起。

       开闭原则的手段和工具 

       里氏代换原则:任何基类可以出现的地方,子类一定可以出现。它是对实现抽象化的具体步骤的规范。

       依赖倒转原则:要依赖抽象,不要依赖于具体。即:针对接口和抽象类编程不针对实现编程。

       合成/聚合复用原则:要尽量使用合成/聚合,尽量不要使用继承。

             合成:当一个A类型的对象销毁了存储单元时,b引用的对象也销毁存储单元。换句话说,b引用的对象的存在依赖于A类型的对象。
             聚合:当一个A类型的对象销毁了存储单元时,b引用的对象并没有销毁存储单元。换句话说,b引用的对象独立于于A类型的对象。

       迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用

       接口隔离原则:使用多个专门的接口比使用单一的总接口要好,一个类对另外一个类的依赖性应当是建立在最小的接口上的。注意:不要接口污染(使接口过于臃肿)

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值