单一职责原则
一个类或者模块应该有且只有一个改变的原因。
里氏替换原则
里氏替换原则通俗的来讲就是: 子类可以扩展父类的功能,但不能改变父类原有的功能。
它包含以下4层含义:
• 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;
• 子类中可以增加自己特有的方法;
• 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松;
• 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
依赖倒置原则
面向接口编程,采用依赖倒置原则给多人并行开发带来了极大的便利。
• 低层模块尽量都要有抽象类或接口,或者两者都有。
• 变量的声明类型尽量是抽象类或接口。
• 使用继承时遵循里氏替换原则。
接口隔离原则
建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。
提高系统的灵活性和可维护性。
• 接口尽量小,但是要有限度。
对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会 造成接口数量过多,使设计复杂化,所以一定要适度。
• 为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。
只有专注地为一 个模块提供定制服务,才能建立最小的依赖关系。
• 提高内聚,减少对外交互。
使接口用最少的方法去完成最多的事情。
迪米特法则
一个对象应该对其他对象保持最少的了解,只与直接的朋友通信。
其中,我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类则不是直接的朋友。
也就是说,陌生的类最好不要作为局部变量的形式出现在类的内部。
开闭原则
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
总结
用抽象构建框架,用实现扩展细节。
1. 单一职责原则告诉我们实现类要职责单一;
2. 里氏替换原则告诉我们不要破坏继承体系;
3. 依赖倒置原则告诉我们要面向接口编程;
4. 接口隔离原则告诉我们在设计接口的时候要精简单一;
5. 迪米特法则告诉我们要降低耦合。
6. 而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。