Newtank

个人站

欢迎来到我的个人站~


软件系统设计

目录

单一职责原则

一个对象只应该包含单一的职责,并且该职责被完整的封装在一个类里。

另一种定义为:就一个类而言,一个类应该仅有一个引起变化的原因。

分析

一个类承担的职责越多,其被复用的可能性越小。如果一个类承担的职责过多,就会造成职责之间的耦合,当其中一个变化时,可能会影响其他职责的运作。

类的职责主要包括两个方面:数据职责和行为职责,数据职责通过属性来体现,行为职责通过方法来体现。

开闭原则

一个软件实体应当对扩展开发,对修改关闭,即在不修改源代码的情况下改变其行为。

分析

抽象化是开闭原则的关键。

开闭原则可以通过一个更加具体的对可比性封装原则来描述,即将系统中具有可比性的元素封装起来。

依赖倒转原则

高层模块不应该依赖于低层模块,而都依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。

针对接口编程,而不是针对实现编程。

分析

依赖倒转的常用实现方式之一是在代码中使用抽象类,将具体实现放在配置文件(元数据)中。

接口隔离原则

客户端不应该依赖那些它不需要的接口。

如果一个接口太大,那么应该切成许多小的接口。

合成复用原则

通过组合来实现代码复用,而不是通过继承来实现代码复用

迪米特法则

应该软件实体应当尽可能少的与其他实体发生相互作用

分析

在狭义的迪米特法则中,如果两个类之间不必直接通信,那么这两个类就不应当发生直接的相互作用,而是通过第三个类进行转发。