- 代码重用性、(避免重复代码)
- 可读性、(便于阅读和理解)
- 可扩展性、(扩展功能非常方便)
- 可靠性、(当我们新增功能后,对原有的功能没有影响)
- 高内聚低耦合
-
单一职责原则(一个类只负责一个职责)
-
接口隔离原则 (一个类依赖另外一个类应当是建立在最小接口上)
-
依赖倒置原则 (细节依赖抽象,而不是细节依赖细节、抽象依赖细节)
- 变量的声明类型尽量是抽象类或者接口,这样我们的变量引用和实际对象之间,就存在一个缓冲层,利于程序扩展和优化。
-
里式替换原则
- 所有引用基类的地方必须能透明的使用其子类的对象。
- 在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类的方法。
- 继承实际上 让两个类的 耦合性增强了,在适当的情况下, 采用聚合,组合,依赖来解决问题。
-
开闭原则(对扩展开放,对修改关闭)(提供方可以扩展,使用方不能修改)
- 用抽象扩展框架,用实现扩展细节
-
迪米特法则
-
迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的public方法,不对外泄露任何信息。迪米特法则还有个更简单的定义:只与直接的朋友通信
-
直接朋友: 每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。
耦合的方式很多,依赖,关联,组合,聚合等。其中,我们称出现成员变量,方法参数,方法返回值中的类为直接的朋友,而出现在局部变量中的类不是直接的朋友。也就是说,陌生的类最好不要以局部变量的形式出现在类的内部。
-
-
合成复用原则
- 原则是尽量使用合成 / 聚合的方式,而不是使用继承。