单一责任原则
里氏替换原则
依赖倒置原则
接口隔离原则
迪米特原则
开闭原则
合成复用原则
1、单一责任原则
Single Responsibility Principle ( ˈsɪŋɡl rɪˌspɑːnsəˈbɪləti ˈprɪnsəpl )
一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化;
2、里氏替换原则
liskov substitution principle( liskov ˌsʌbstɪ'tuʃ(ə)n ˈprɪnsəpl )
子类可以扩展父类的功能,但不能改变原有父类的功能;(多态)
(目的:增强程序的健壮性)实际项目中,每个子类对应不同的业务含义,使父类作为参数,传递不同的子类完成不同的业务逻辑。
3、依赖倒置原则
dependence inversion principle ( dɪˈpendəns ɪnˈvɜrʃ(ə)n ˈprɪnsəpl )
面向接口编程;(通过接口作为参数实现应用场景),抽象就是接口或者抽象类,细节就是实现类
意思是上层模块不应该依赖下层模块,两者应依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象;
通俗点就是说变量或者传参数,尽量使用抽象类,或者接口;
4、接口隔离原则
interface segregation principle ( ˈɪntərˌfeɪs ˌseɡrəˈɡeɪʃ(ə)n ˈprɪnsəpl )
建立单一接口;(扩展为类也是一种接口,一切皆接口)
定义:
a.客户端不应该依赖它不需要的接口;
b.类之间依赖关系应该建立在最小的接口上;
简单理解:复杂的接口,根据业务拆分成多个简单接口;(对于有些业务的拆分多看看适配器的应用)
【接口的设计粒度越小,系统越灵活,但是灵活的同时结构复杂性提高,开发难度也会变大,维护性降低】
5、迪米特原则
law of demeter ( lɔ ɑv ˈdɪˈmitɚ)
又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解, 尽量降低类与类之间的耦合。简写: LOD
6、开闭原则
open closed principle ( ˈoʊpən kloʊzd ˈprɪnsəpl )
软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的
7、合成复用原则
Composite Reuse Principle( kəmˈpɑːzət ˌriːˈjuːs ˈprɪnsəpl )
··在面向对象设计中,可以通过两种方法在不同的环境中复用已有的设计和实现,即通过组合/ 聚合关系或通过继承。
但首先应该考虑使用组合/聚合,组合/聚合可以使系统更加灵活,降低 类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少;
其次才考虑继承,在使用继承时,需要严格遵循里氏代换原则,有效使用继承会有助于对问题的理解,降低复杂度,而滥用继承反而会增加系统构建和维护的难度以及系统的复杂度,因此需要慎重使用继承复用。