开放—封闭原则、依赖倒转原则

    在编写代码的过程中,无论是多么封闭的模块,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。必须事先猜测出最有可能发生变化的种类,然后构造抽象来隔离这些变化。

开放封闭原则

    如果不使用开放—封闭原则,增加一个功能只是在client类中完成,那么后来再增加一个减法的算法,那我们只能修改原来的这个类,如果每次修改都需要重新写client算法类,这样就会给我们带来不必要的麻烦。如果我们在设计之初就考虑增加一个抽象的运算类,通过继承和多态的方法来隔离具体的加减、乘除方法,不仅可以满足我们的业务需要,还能在不改变client类的情况下增加功能,只需要增加相应的子类就可以了。

    开放—封闭原则是面向对象的核心所在,软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。因此,开放封闭原则主要体现在两个方面:对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。但是并不能对应用程序中的每个部分都刻意抽象,应该拒绝不成熟的抽象。

   

                                                                                 依赖倒转原则

依赖倒转原则

    在编程时,我们的抽象类不应该依赖于细节,细节应该依赖于抽象。我们应该针对于接口编程,而不是针对于实现编程。这个意思可能是说,我们在实现功能的时候,功能可以随意的改变,如果我们只注重细节,在修改的时候就显得更麻烦。如果我们针对于接口编程,我们只需要改变我们的实现类,或者在子类中实现我们想要的功能,这样就提高了可维护性。



                                                                                        里氏代换原则

    里氏替换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。只有当子类可以替换掉父类,软件单位的功能才能不受影响时,父类才能真正的被复用,而子类也能够在父类的基础上增加新的方法。


里氏代换原则

    由于子类的可替换性,才使得父类模块在无需修改的情况下就可以拓展。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单一职责原则 (SRP) 全称 SRP , Single Responsibility Principle 单一职...
    米莉_L阅读 1,803评论 2 5
  • 本文出自《Android源码设计模式解析与实战》中的第一章。 1、优化代码的第一步——单一职责原则 单一职责原则的...
    MrSimp1e0阅读 1,852评论 1 13
  • 设计模式基本原则 开放-封闭原则(OCP),是说软件实体(类、模块、函数等等)应该可以拓展,但是不可修改。开-闭原...
    西山薄凉阅读 3,964评论 3 14
  • 设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多...
    霄霄霄霄阅读 920评论 0 1
  • 面向对象的3个基本要素: 封装、继承、多态 面向对象的5个基本设计原则: 单一职责原则(Single-Respos...
    badcyc阅读 920评论 0 4