面向对象的设计原则——模式工程化实例及拓展

一、单一职责原则(SRP)编程

  Single Responsibility principle:  每一个类应只有一个引发它变化的缘由/每一个类应只担任一个职责,以便于往后的程序的维护。spa

二、李氏替换原则(LSP) 和 依赖倒置原则(DIP)设计

  Liskov Substitution Principle:LSP原则要求子类能够无条件的替代父类,子类不能对父类没有暴露的接口进行扩展,客户要调用功能只能经过父类暴露的接口来调用用不能擅自向子类调用。继承

  dependence inversion principle:“高层模块不该该依赖低层模块,两者都应该依赖其抽象;抽象不该该依赖细节;细节应该依赖抽象。中心思想是面向接口编程”。接口

  换句话说就是设计的时候咱们要用抽象来思考,而不是一上来就开始划分我须要哪些哪些类,由于这些是具体。这样作有什么好处呢?人的思惟自己实际上就是很抽象的,咱们分析问题的时候不是一会儿就考虑到细节,而是很抽象的将整个问题都构思出来,因此面向抽象设计是符合人的思惟的。ip

       咱们在运用里氏代换原则时,尽可能把父类设计为抽象类或者接口,让子类继承父类或实现父接口,并实如今父类中声明的方法,运行时,子类实例替换父类实例,咱们能够很方便地扩展系统的功能,同时无须修改原有子类的代码,增长新的功能能够经过增长一个新的子类来实现。里氏代换原则是开闭原则的具体实现手段之一。ci

三、接口隔离原则(ISP)it

  使用多个专门的接口比使用单一的总接口要好。也就是说,一个类对另一个类的依赖性应当是创建在最小的接口上。io

四、迪米特法则(Lod:Law of Demter、LKP)扩展

  一个软件实体应当尽量少的与其余实体发生相互做用。
   一个软件实体应当尽量少的与其余实体发生相互做用。 迪米特法则的初衷在于下降类之间的耦合。因为每一个类尽可能减小对其余类的依赖,所以,很容易使得系统的功能模块功能独立,相互之间不存在(或不多有)依赖关系。

五、开闭原则(OCP) 

   一个软件实体应当对扩展开放,对修改关闭。 你添加新功能的时候应该只是向代码集中添加新的代码不该该修改原来的代码。

相关文章
相关标签/搜索