单一职责原则
定义:一个类只负责一个功能领域中的相应职责
作用:降低类的复杂度,提高可读性、复用性。
关键点:职责归类、划分的粒度
开闭原则
定义:一个软件实体(类、模块、函数等)应当对扩展开发,修改关闭
作用:减少重复实现及出错风险,需求变化不影响已封装的代码
关键点:对经常变化的部分进行抽象,做到扩展时不修改已封装的代码
里氏替换原则
定义:所以引用基类(父类)的地方必须能透明地使用其子类对象
作用:方便扩展
关键点:用基类定义对象,运行时再确定其子类类型。
依赖倒置原则
定义:抽象不应该依赖细节,细节应当依赖抽象。
关键点:面向接口编程、面向抽象编程,而不是针对实现编程。
开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段,它们相辅相成,相互补充,目标一致,只是分析问题时所站角度不同而已。
接口隔离原则
定义:使用多个专用接口,而不是单一的总接口,即客户端不应该依赖那些它不需要的接口
作用:降低耦合,提高灵活性
关键点:拆分接口,但需要注意控制接口粒度,接口不能太小,太小会导致系统中接口泛滥。
最少知识原则(迪米特法则)
定义:一个软件实体应当尽可能少地与其他实体发生相互作用
作用:减低耦合,提高复用性
关键点:只与你的直接朋友通信,引入一个合理的第三者减低现有对象之间的耦合度。
注意:
1、直接朋友有:
- 当前对象本身(this);
- 以参数形式传入到当前对象方法中的对象;
- 当前对象的成员对象;
- 如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友;
- 当前对象所创建的对象。
- 方法返回值中的类
2、陌生的类最好不要作为局部变量的形式出现在类的内部
3、
- 在类的结构设计上,每一个类都应当尽量降低其成员变量和成员函数的访问权限
- 在类的设计上,只要有可能,一个类型应当设计成不变类
- 在对其他类的引用上,一个对象对其他对象的引用应当降到最低
推荐阅读:
网友评论