设计模式6原则
SOLID C
迪米特原则(Demeter Principle)
类与类最少知道,模块相对独立。
- 类的划分上,创建低耦合的类;
- 类的设计上,降低成员的访问权限;
- 类的引用上,减少其他对象的引用次数;
- 谨慎使用序列化(Serializable)功能。
开闭原则(Open Close Principle)
对扩展开放,对修改关闭。
- 抽象约束,封装变化。
里氏替换原则(Liskov Substitution Principle)
任何基类出现的地方,子类一定可以出现。
- 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;
- 子类中可以增加自己特有的方法;
- 子类重载父类的方法时,前置条件(即方法的输入参数)要比父类的更宽松;
- 子类实现父类的方法时,后置条件(即方法的输出/返回值)要比父类的更严格。
依赖倒转原则(Dependencce Inversion Principle)
针对接口编程,依赖于抽象而不具体实现。
- 每个类尽量提供接口或/和抽象类;
- 变量的声明类型尽量是接口或者抽象类;
- 任何类都不应该从具体类派生;
- 使用继承时尽量遵循里氏替换原则。
接口隔离原则(Interface Segregation Principle)
使用多个隔离的接口。
- 接口尽量小,但是要有限度。一个接口只服务于一个子模块或业务逻辑;
- 为依赖接口的类定制服务。类只提供需要的方法,屏蔽不需要的;
- 拒绝接口固定化。不同的业务逻辑,接口的拆分标准就不同;
- 提高内聚,减少对外交互。接口用最少的方法去完成最多的事情。
合成复用原则(Composite Reuse Principle)
尽量使用合成/聚合,而不是继承。