设计模式:设计原则

2017-09-20  本文已影响0人  双鱼子曰1987

闲言碎语

虽然几年前懵懵懂懂看完设计模式神书,可惜功力不够,无法透彻理解,也没有留下啥。现如今重拾神书,简述学习摘要,以便后续自己查阅。

它由罗伯特·C·马丁在21实际早期引入的面向对象编程和面向对象设计的六个基本原则。后面被应用到测试驱动领域、敏捷开发、自适应软件开发等中,做为它们的基本原则的重要组成部分。

另外,著名的 Gang of Four设计模式 为 “面对对象编程” 提供一套模拟现实世界关系的方法论,其中三大类、23种设计模式都是围绕着开篇的六大设计原则展开,都尽可能或多或少的契合六大原则中的几条。

如图:


设计模式的七大原则.png

简称为,SOLID(稳定的)

首先,认识下设计模式六大原则的英文表述和对应的中文意思:
Single Responsibility Principle:单一职责原则
Open Closed Principle:开闭原则
Liskov Substitution Principle:里氏替换原则
Law of Demeter:迪米特法则
Interface Segregation Principle:接口隔离原则
Dependence Inversion Principle:依赖倒置原则

把这六个原则的首字母联合起来(两个 L 算做一个)就是 SOLID (solid,稳定的),其代表的含义就是这六个原则结合使用的好处:建立稳定、灵活、健壮的设计。

六大核心原则

OCP背后的主要机制是抽象和多态。
如何、何时抽象?
凭现有的实践经验预估将来合理的变化因素或者现实中遇到的变化因素,这时候就应该创建一种抽象来封装隔离变化它。

如何获得封闭性
1、抽象和多态获得显式封闭
2、使用“数据驱动”的方法获得封闭性,即多一个中间变量一切变得美好
100%的封闭是不现实且不可能做到的,应该进行的是有策略的封闭。

** OCP 和 LSP两个原则,规范类核心本质(抽象和多态、继承)的设计。 **
** SRP 和 loD两个原则,强调高内聚、低耦合设计。 **
** DIP 和 ISP两个原则,强调和规范面向接口设计。 **

以下补充原则


包的设计原则

以下六大原则中,前3个原则关注包的内聚性,指导我们对类进行组包;后3个关注包的耦合性,指导我们确定包与包之间的互相关系。

一、粒度,包内聚性原则,根据“自底向上”的观点对类进行划分
一、稳定性:包的耦合性原则

2、稳定性依赖原则,Stable Dependencies Principle,SDP
朝着稳定的方向进行依赖。易变化包不应该依赖稳定包。
对于任何包而言,如果期望它是可变的,就不应该让一个难以更改的包依赖于它!否则,可变的包同样也会难以更改。

3、稳定抽象原则,Stable Abstract Principle,SAP
包的稳定程度和其抽象程度一致。朝着抽象方向扩展。

上一篇下一篇

猜你喜欢

热点阅读