架构中的7个设计原则

7条原则:单一职责原则、开闭原则、里式替换原则、依赖注入原则、接口分离原则、迪米特原则、优先使用组合而不是继承原则。

 

单一职责原则SRP

系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。

高内聚,低耦合。每个类应该只有一个职责,对外只能提供一种功能。

 

里式替换原则LSP

在任何父类出现的地方都可以用它的子类来替代。

同一个继承体系中的对象应该有共同的行为特征。关注于怎样良好地使用继承。

 

依赖注入原则DIP

要依赖于抽象,不要依赖于具体的实现。

在应用程序中,所有的类如果使用或依赖于其他的类,则都应该依赖于这些其他类的抽象类,而不是这些其他类的具体实现类,这样才能保证系统的可复用性和可维护性,这就要求开发人员在编程时针对接口编程而不针对实现编程。

依赖注入原则有如下三点说明:

高层模块不应该依赖低层模块,两者都应该依赖于抽象(抽象类或接口)

抽象(抽象类或接口)不应该依赖于细节(具体实现类)

细节(具体实现类)应该依赖抽象

依赖注入原则的本质就是通过抽象使各个类或模块的实现彼此独立,不相互影响,实现模块间的松耦合。

依赖注入的三种实现方式

1、通过构造函数传递依赖对象(在构造函数中的需要传递的参数是抽象类或接口的方式实现)

2、通过setter方法传递依赖对象(设置的setXXX方法中的参数为抽象类或接口,来实现传递依赖对象)

3、接口声明实现依赖对象

 

接口分离原则ISP

不应该强迫客户程序依赖它们不需要使用的方法。

一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该把所有的操作都封装到一个接口中

 

迪米特原则LOD

一个对象应当对其它对象尽可能少地了解,降低各个对象之间的耦合,提供系统的可维护性。在模块之间,应该只通过接口来通信,而不理会模块的内部工作原理,它可以使各个模块耦合程度降低,促进软件的复用。

 

开闭原则OCP

一个对象对扩展开发,对修改关闭。

对类的改动是通过增加代码进行的,而不是改动现有的代码。

 

posted @ 2018-12-27 14:56  HelloWorld1815  阅读(354)  评论(0编辑  收藏  举报