美文网首页
开放—封闭原则、依赖倒转原则

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

作者: 桌子上的方便面 | 来源:发表于2017-05-09 17:39 被阅读0次

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

开放封闭原则

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

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

   

                                                                                 依赖倒转原则

依赖倒转原则

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



                                                                                        里氏代换原则

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

里氏代换原则

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

相关文章

  • 设计模式六大原则

    单一职责原则: 依赖倒转原则: 开放-封闭原则: 迪米特法则: 里氏代换原则: 接口隔离原则:

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

    在编写代码的过程中,无论是多么封闭的模块,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他...

  • 面向对象

    面向对象的3大特性 封装 继承 多态 面向对象的几大原则 单一职责原则 里氏替代原则 依赖倒转原则 开放-封闭原则...

  • 设计模式(六大原则)

    1.单一职责原则 2.开放-封闭原则 3.依赖倒转原则 4.里氏代换原则 5.接口隔离原则    定义:类之间的依...

  • ruby设计模式(大话设计模式)

    1、简单工厂模式 2、策略模式 3、单一职责原则 4、开放-封闭原则 5、依赖倒转原则 8、工厂方法模式 1、简单...

  • 1.设计原则

    设计模式(面向对象)有七大原则,分别是: 开放-封闭原则 单一职责原则 依赖倒转原则 迪米特法则(也称为最小知识原...

  • 设计模式

    1、简单工厂模式2、策略模式3、单一指责原则4、开放-封闭原则5、依赖倒转原则6、装饰模式7、代理模式8、工厂方法...

  • 依赖倒转原则

    依赖倒转原则 依赖倒转原则也称为依赖倒置原则。 依赖倒转原则: 高层模块不应该依赖低层模块,两个都应该依赖抽象。 ...

  • 面向对象的5个基本设计原则

    单一职责原则,开放封闭原则,依赖倒置原则,接口隔离原则和Liskov替换原则

  • 面向对象五大原则 - 草稿

    单一职责原则(SRP) 开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接口隔离原则(ISP)

网友评论

      本文标题:开放—封闭原则、依赖倒转原则

      本文链接:https://www.haomeiwen.com/subject/rptitxtx.html