软件设计的六个原则

(1)单一职责原则:

不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一个职责。
一个类只处理与只它有关的操作,涉及多个类的操作新建一个类进行处理。

遵循单一职责原的优点有:
可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
提高类的可读性,提高系统的可维护性;
变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

(2)里氏替换原则:

所有引用基类的地方必须能透明地使用其子类的对象;
在实际编程中,我们一般需要做到如下3点:
低层模块尽量都要有抽象类或接口,或者两者都有。
变量的声明类型尽量是抽象类或接口。
使用继承时遵循里氏替换原则。

(3)依赖倒置原则:

高层模块不应该依赖低层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖于抽象。

(4)接口隔离原则:

客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

(5)迪米特法则:

一个对象应该对其他对象保持最少的了解。

(6)开闭原则:

一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
用抽象构建框架,用实现扩展细节。

单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。