04开闭原则

指的是对扩展开放,对修改关闭。

通过扩展已有对软件系统,可以提供新对行为,以满足对软件对新需求,使变化中对软件具有一定的适应性和灵活性;

已有的软件系统,特别是重要的抽象层模块不能再修改,使得变化中的软件系统具有一定的稳定性和延续性;

抽象化是关键

规定了所有具体类必须提供的特征方法,这个抽象层预见了所有可能的扩展,因此任何扩展情况都不会修改,从而满足了开闭原则的对修改关闭。

同时从抽象类导出不同的具体类,改变系统的行为,因此系统的设计对扩展是开放对,满足了开闭原则的对扩展开放。

对可变性对封装原则

继承应该被看作封装变化的方法,而不是从一般性生成特殊对象的方法;

一种可变性不应当与另一种可变性混合在一起,也就是继承一般不会超过两层,否则就意味着将两种不同的可变性混合在一起了;

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

依赖倒转原则:应该依赖于抽象,而不是依赖于具体实现。

合成/聚合复用原则:应尽量使用合成/聚合,而不是继承实现复用的目的。

迪米特法则原则:一个软件实体应尽可能与其他实体发生少的相互作用。

接口隔离原则:为客户端尽可能提供小的单独的接口,而不是大的总的接口。


一个设计模式对什么样的变化进行开放,带来的代价是什么?

使用多态改造条件转移的讨论:

如果条件转移实现了某些商业逻辑的可变性,那么将此种可变性封装起来,则符合开闭原则。若条件转移没有涉及到重要的商务逻辑,或者不会随时间而变化,也没有任何可扩展性,那就没有任何有意义的可变性,这时将条件转移改变为多态则是一种滥用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计原则就是在设计模式背后更为深层的、更具有普遍性的、共同的思想原则,是提高软件系统的可维护性和可复用性的指导原则...
    苏先生Tongson阅读 4,927评论 0 0
  • 我们在应用开发中,一般要求尽量做到可维护性和可复用性 应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本...
    Yochi阅读 3,502评论 0 0
  • 标准定义 开闭原则(Open-Closed Principle, OCP)的定义如下: 软件中的对象(类,模块,函...
    Next_吴思成阅读 3,025评论 0 0
  • 设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多...
    霄霄霄霄阅读 4,381评论 0 1
  • 软件开发是始于面向过程的 软件开发是始于面向过程的,因为面向过程地解决问题更直接,软件本身就是一个解决问题的过程;...
    侏罗纪猿阅读 4,112评论 0 2