单一职责原则
里氏替换原则(规范继承)
任何基类可以出现的地方,子类一定可以出现
1.子类必须完全实现父类的方法
2.子类可以有自己的个性
3.覆盖或实现父类的方法时输入参数可以被放大
4.覆写或实现父类的方法时输出结果可能被缩小
依赖倒置原则(面向接口编程)
通过抽象使各个类或者模块的实现彼此独立
1.每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备
2.变量的表面类型尽量是接口或者是抽象类
3.任何类都不应该从具体类派生
4.尽量不要覆写基类的方法
5.结合里氏替换原则使用
对象的依赖关系传递方式:
1.构造函数传递依赖对象
2.Setter方法传递依赖对象
3.接口声明依赖对象(接口注入)
接口负责指定public属性和方法,并且声明与其他对象的依赖关系抽象类负责公共构造部分的实现,实现类准确的实现业务逻辑,
同时在适当的时候对父类进行细化
接口隔离原则(对接口进行规范约束)
接口:实例接口 类接口
1.接口要尽量小(根据接口隔离原则拆分接口时,首先必须满足单一职责原则)
2.接口要高内聚
3.定制服务
4.接口设计是有限度的
接口隔离原则是对接口的定义,同时也是对类的定义,接口和类尽量使用原子接口或者原子类来组装.
最佳实践:控制接口颗粒度
迪米特法则
一个对象应该对其他对象有最少的了解.
开闭原则
对扩展开放,对修改关闭
通过扩展来实现变化,而不是通过修改已有的代码来实现变化
可维护性: 修改和扩展,体现在以设计原则和设计模式为基础
可阅读性:格式化,约定俗成的规范,变量命令规范 , 方法命令规范等
如果是模块话的功能,那么就应该做到模块内聚,与这个模块有关联的操作,方向应该单一,不应该引用和对象到处跑
如果是全局性的功能和方法,应该将方法抽聚在一起,使用的方式就通过单纯的实例引用或者静态方法调用
参考: <<设计模式>> <<设计模式之禅>> <<大话设计模式>>