java六大设计原则
1)开闭原则(Open Closed Principle)
对扩展开放,对修改关闭。
2)里氏置换原则(Liskov Substitution Principle),简称LSP
所有引用基类的地方都可以使用其子类对象。即父类出现的地方子类就能够出现,而且替换为子类不会产生任何错误或异常。
3)依赖倒置原则(Dependence Inversion Principle),简称DIP
高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应当依赖于细节,细节应当依赖于抽象。要针对接口编程,不要针对实现编程。
高层组件应该依赖抽象而不依赖具体,即面向接口编程,一般依赖的成员变量或者参数都应该是抽象的不应该是具体的。
低层模块尽量都要有抽象类或接口,或者两者都有(低层是抽象,高层是具体实现类)。
4)接口隔离原则(Interface Segregation Principle)
使用多个专门的接口比使用单一的总接口要好。
一个接口的功能尽可能的单一,不要让一个接口承担过多的责任,接口中尽量不要声明太多的不相干的方法。
5)合成/聚合复用原则(Composite/Aggregate Reuse Principle CARP)
在一个新的对象里使用另一个已有的对象,使之成为新对象的一部分。从而达到复用已有功能的目的。
合成/聚合、继承是实现复用的两个途径。
通用功能可以使用继承,比如银行卡的取款、存款等。
银行卡的分类要使用合成/聚合,比如信用卡、储蓄卡。
优点:引用对象的内部细节不可见,黑箱复用。
缺点:较多的对象需要管理。
6)迪米特法则
又叫最少知识(知道)原则(Least Knowledge Principle,LKP)
一个对象应该对其他对象尽可能少的了解。一个类应该对自己要调用的类知道最少,只需要知道提供的public方法即可,不必关心其内部实现是如何复杂。
7)单一职责原则
一个类只有一个引起这个类变化的原因。即一个类只完成一个功能,如果做不到一个类只完成一个功能,最少要保证一个方法只完成一个功能。