7原则(1)

1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造(A Pattern Language: Towns Building Construction)中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。

1979 年他的另一部经典著作《建筑的永恒之道》(The Timeless Way of Building)进一步强化了设计模式的思想,为后来的建筑设计指明了方向。

1987 年,肯特·贝克(Kent Beck)和沃德·坎宁安(Ward Cunningham)首先将克里斯托夫·亚历山大的模式思想应用在 Smalltalk 中的图形用户接口的生成中,但没有引起软件界的关注。

直到 1990 年,软件工程界才开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。

1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)

合著了《设计模式:可复用面向对象软件的基础》。

1.总纲:开闭原则。特点软件实体对外扩展功能,对内关闭修改。“抽象约束,封装变化”。一旦接口确定,就不可以修改,而是修改实现类。

2.里氏替换原则:子类可以扩展父类的功能,而不可以改变父类原有的功能。

3.依赖倒置原则:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。

  其核心思想是:面向接口编程,而不是面向实现编程。

4.单一职责原则:又称单一功能原则。这里的职责指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。

5.接口隔离原则:要为各个类建立他们需要的专用接口,而不要试图去建立一个庞大的接口提供所有依赖tade他的类去调用。“最小接口”。

6.迪米特法则:又叫做最少知识原则。如果两个软件实体无须直接通信,那么就不应该直接的相互调用,可以通过第三方转发该调用。

  (过度使用迪米特法则会使系统产生大量的中介类)

7.合成复用原则:要求软件在复用时,尽量先使用聚合或组合等关联关系来实现,其次才考虑使用继承关系来实现。

*总结

这 7 种设计原则是软件设计模式必须尽量遵循的原则,各种原则要求的侧重点不同。其中,开闭原则是总纲,它告诉我们要对扩展开放,对修改关闭;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;单一职责原则告诉我们实现类要职责单一;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合度;合成复用原则告诉我们要优先使用组合或者聚合关系复用,少用继承关系复用。

猜你喜欢

转载自www.cnblogs.com/zzlcome/p/11076250.html