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

Posted NeilZhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的设计原则——模式工程化实例及拓展相关的知识,希望对你有一定的参考价值。

1、单一职责原则(SRP)

  Single Responsibility principle:  每个类应只有一个引起它变化的原因/每个类应只担任一个职责,以便于日后的程序的维护。

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

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

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

  换句话说就是设计的时候我们要用抽象来思考,而不是一上来就开始划分我需要哪些哪些类,因为这些是具体。这样做有什么好处呢?人的思维本身实际上就是很抽象的,我们分析问题的时候不是一下子就考虑到细节,而是很抽象的将整个问题都构思出来,所以面向抽象设计是符合人的思维的。

3、接口隔离原则(ISP)

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

4、迪米特法则(Lod:Law of Demter、LKP)

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

5、开闭原则(OCP) 

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

以上是关于面向对象的设计原则——模式工程化实例及拓展的主要内容,如果未能解决你的问题,请参考以下文章

C# 实例解释面向对象编程中的依赖反转原则

C# 实例解释面向对象编程中的单一功能原则

C# 实例解释面向对象编程中的接口隔离原则

C# 实例解释面向对象编程中的开闭原则

面向对象思想设计原则

5.4 SAP ABAP 面向对象概念 - 多态 - 摘自 《SAP ABAP面向对象程序设计:原则模式及实践》