【设计模式】之原则

设计模式体现的是一种思想,而思想是指导行为的一切。学习设计模式,实际接受的是一种软件设计思想的熏陶和洗礼。

我们知道,OO精神:可维护、可扩展、可复用、灵活性好。追求的目标是:高内聚,低耦合。

内聚性:一个例程内部组成部分之间相互联系的紧密程度

耦合性:一个例程与其他例程之间联系的紧密程度

在其设计过程中,始终严格遵循其要求的原则:

1、单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。

在设计过程中,尽可能发现职责并把那些职责相互分离

2、开放—封闭原则(The Open-Closeed Principle)OCP:软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。

该原则是面向对象设计的核心所在。其精神所在:面对需求,对程序的改动是通过增加新代码进行,而不是更改现有的代码

3、依赖倒转原则

1)高层模块不应该依赖底层模块,两个都应该依赖抽象。

2)抽象不应该依赖细节,细节应该依赖抽象。即:针对接口编程,不要对实现编程。

如:主板、CPU、内存、硬盘都是在针对接口设计的。

4、里氏转换原则 LSP:子类型必须能够替换掉它们的父类型。

在软件里面,把父类都替换成它的子类,程序行为没有变化。

因为有了里氏转换原则:继承复用成为了可能。只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

5、合成/聚合复用原则:优先使用对象合成/集合,而不是类继承。

好处:有助于保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物。

6、迪米特法则LoD:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

如:国家间不必直接通信,因此在此引入联合国。

这些原则应始终贯彻于我们的设计过程中,在设计时,遵循以上原则应如同遵守国家法律一般。以更好的达到软件设计的精神。

你可能感兴趣的:(《设计模式》)