1. 单一职责原则
就一个类而言,应该只有一个引起它变化的原因,即一个类只负责一项职责(功能)。
2. 开放封闭原则
软件实体(类,方法,模块)应该可以扩展,但是不可以修改。
3. 依赖倒置原则
针对抽象编程,不要针对实现编程。高层模块不应该依赖于底层模块,两个模块都应该依赖于抽象(抽象类 / 接口)。
4. 里氏转换原则
(1)一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。
(2)在软件里面,把父类都替换成它的子类,软件的行为没有变化;即子类型必须能够替换掉它们的父类型。
里氏转换原则切入点:
①子类对象可以直接赋值给父类变量;
②子类对象可以调用父类中的成员,但是父类对象永远只能调用自己的成员;
③如果父类对象中装的是子类对象,可以将这个父类对象强转为子类对象。
class Man : Person
{
Person man1 = new Man();
Man man2 = new Man();
Man man3 = (Man)man1;
}
5. 迪米特原则
也叫做最少知识(知道)原则
(1)如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另外一个类的某一个方法的话,可以通过第三者转发这个调用。
(2)一个对象应当对其他对象有尽可能少的了解。
迪米特原则切入点:
①在类的结构设计上,每一个类都应当尽量降低成员的访问权限;
②迪米特原则主要是强调了类与类之间的松耦合。
6.接口隔离原则
(1)客户端不应该依赖它不需要的接口;
(2)一个类对另一个类的依赖应该建立在最小的接口上。