目录
一 开闭原则
是指一个软件实体类模板和函数应该对扩展开放,对修改关闭。
开是指对扩展开放,闭则是对修改关闭;
例如:我们的版本发生更新,我们尽可能的不去修改源码,但是可以新增新的功能
二 依赖倒置原则
是指高层的模块不能依赖与底层的模块应该依赖于其抽象。
通过抽象使各个类或者模块之间不相互影响,实现解耦。
三 单一职责原则
故名思意一个类,接口,方法只做一件事,达到专人做专事。
解决问题:假如一个类负责两个职责,一但需求变更需要更改其中一个职责的逻辑代码,有可能回导致另一个职责的功能出现问题。
四 接口隔离原则
是指用多个专一接口,而不是用一个总接口,客户端不需要他依赖他不需要的客户端。
设计接口的时候注意:
一个类对一类的依赖应该建立在最小的接口上。
建立单一接口,不要建立庞大臃肿的接口。
适量细化接口,接口中的方法尽量上。
五 迪米特法则
是指一个对象应该对其他对象保持最少了解。一个类对其依赖的类知道的越少越好。
拒绝和陌生人交流,只和朋友说话。
六 里氏替换原则
是指子类可以扩展父类的方法,但是不能改变父亲原有的功能。
注意:
1.子类可以实现父亲的抽象方法,但不能覆盖父亲的非抽象方法。
2.子类中可以有自己特有的方法。
3.当子类要重载父类方法的时候(输入/参数)要比父类更宽泛。
4.当子类要重载父类方法的时候(输出/返回值)要比父类更严格或相等。
优点:
1.约束继承泛滥
2.加强程序的兼容性,当发生变更可以很好的兼容,提高程序的扩展性,可维护性。降低变更需求的风险性。
七 合成复用原则
尽量使用对象组合(has-a),聚合(contanis-a),而不是使用继承关系达到代码的复用的目的。