设计模式之软件架构的七大原则

目录

一  开闭原则

二  依赖倒置原则

三  单一职责原则

四  接口隔离原则

五  迪米特法则

六  里氏替换原则

七  合成复用原则

一  开闭原则

是指一个软件实体类模板和函数应该对扩展开放,对修改关闭

开是指对扩展开放,闭则是对修改关闭;

例如:我们的版本发生更新,我们尽可能的不去修改源码,但是可以新增新的功能

二  依赖倒置原则

是指高层的模块不能依赖与底层的模块应该依赖于其抽象。

通过抽象使各个类或者模块之间不相互影响,实现解耦。

三  单一职责原则

故名思意一个类,接口,方法只做一件事,达到专人做专事

解决问题:假如一个类负责两个职责,一但需求变更需要更改其中一个职责的逻辑代码,有可能回导致另一个职责的功能出现问题。

四  接口隔离原则

是指用多个专一接口,而不是用一个总接口,客户端不需要他依赖他不需要的客户端。

设计接口的时候注意: 

一个类对一类的依赖应该建立在最小的接口上。

建立单一接口,不要建立庞大臃肿的接口。

适量细化接口,接口中的方法尽量上。

五  迪米特法则

是指一个对象应该对其他对象保持最少了解。一个类对其依赖的类知道的越少越好。  

拒绝和陌生人交流,只和朋友说话。

六  里氏替换原则

是指子类可以扩展父类的方法,但是不能改变父亲原有的功能。

注意:

1.子类可以实现父亲的抽象方法,但不能覆盖父亲的非抽象方法。

2.子类中可以有自己特有的方法。

3.当子类要重载父类方法的时候(输入/参数)要比父类更宽泛。

4.当子类要重载父类方法的时候(输出/返回值)要比父类更严格或相等。

优点:

1.约束继承泛滥

2.加强程序的兼容性,当发生变更可以很好的兼容,提高程序的扩展性,可维护性。降低变更需求的风险性。

七  合成复用原则

尽量使用对象组合(has-a),聚合(contanis-a),而不是使用继承关系达到代码的复用的目的。

 

你可能感兴趣的:(设计模式)