4个基本原则
1 单一职则
就一个类而言,应该仅有一个引起它变化的原因
- 无论是一个类,还是一个函数,应该只做一件事情,类或函数的职责过多会产生互相之间的耦合。
2 开放-封闭
软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改
- 面对需求的改变,是通过增加代码来解决的,而不是通过修改代码;
- 对频繁变化的部分进行抽象,不要对每个部分刻意地进行抽象。
3 依赖倒转
模块(高层、低层)之间不应该相互依赖,而应该依赖抽象
细节应该依赖抽象
子类型应能够替换掉它们的父类型
- 面向接口编程,而不应该面向实现
4 迪米特
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用;
如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用
- 一个类应该尽量降低成员的访问权限;
- 松耦合
总结
- 可维护、可扩展、可复用、灵活性好是软件设计的终极目标!