目录
1.开闭原则(Open Close Principle)
对扩展开放、修改该关闭;
针对新的逻辑需求,尽可能再原有基础上继承扩展,而不是直接修改原有逻辑。
2.依赖倒置原则(Dependence Inversion Principle)
面向接口编程
* 高层模块不应该依赖于低层模块,二者都应该依赖于抽象
* 抽象不应该依赖于细节,细节应该依赖于抽象
* 针对接口编程,不要针对实现编程。
低层模块:往往在一个应用程序中,我们有一些低层次的类,这些类实现了一些基本的或初级的操作,称之为低层模块;
高层模块:另外一些高层次的类,这些类封装了某些复杂的逻辑,并且依赖于低层次的类,这些类我们称之为高层模块。
3.单一职责原则(Single Responsibility Principle)
每一个类(类/接口/方法)应该专注于做一件事情。
4.接口隔离原则(Interface Segregation Principle)
应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。
5.迪米特法则(Law Of Demeter)
最少知道原则,强调只和朋友说话,和陌生人少交流。
这里的朋友指成员变量、入参、出参。而只出现在方法体内部的类型则为陌生人,尽可能少的使用。
6.里氏替换原则(Liskov Substitution Principle)
超类存在的地方,子类是可以替换的。
java里的泛型
7.组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP)
尽量使用对象组合(has-a)/聚合(contain-a) ,而不是继承关系达到软件复用的目的。