本文参考 设计模式之七大基本原则
设计模式的六大原则
-
单一职责原则 (Single Responsibility Principle) 单一职责原则表示一个模块的组成元素之间的功能相关性。从软件变化的角度来看,就一个类而言,应该仅有一个让它变化的原因;通俗地说,即一个类只负责一项职责。 -
开放-关闭原则 (Open-Closed Principle)
软件实体 (类、模块、函数等等) 应该是可以被扩展的,但是不可被修改。
- 里氏替换原则 (Liskov Substitution Principle)
所有引用基类的地方必须能透明地使用其子类的对象。子类可以扩展父类的功能,但不能改变父类原有的功能。 如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。
- 依赖倒转原则 (Dependence Inversion Principle)
高层模块不应该依赖低层模块,二者都应该于抽象。进一步说,抽象不应该依赖于细节,细节应该依赖于抽象。依赖倒转原则的核心就是要面向接口编程。
- 接口隔离原则 (Interface Segregation Principle)
使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
- 迪米特法则(Law Of Demeter)
一个对象应该对其他对象保持最少的了解。 每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多,依赖、关联、组合、聚合等。其中,我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类则不是直接的朋友。也就是说,陌生的类最好不要作为局部变量的形式出现在类的内部。迪米特法则的意思是只与直接的朋友通信
- 组合/聚合复用原则 (Composite/Aggregate Reuse Principle)
组合/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分; 新的对象通过向这些对象的委派达到复用已有功能的目的。 在面向对象的设计中,如果直接继承基类,会破坏封装,因为继承将基类的实现细节暴露给子类;如果基类的实现发生了改变,则子类的实现也不得不改变;从基类继承而来的实现是静态的,不可能在运行时发生改变,没有足够的灵活性。于是就提出了组合/聚合复用原则,也就是在实际开发设计中,尽量使用组合/聚合,不要使用类继承。 总体说来,组合/聚合复用原则告诉我们:组合或者聚合好过于继承。聚合组合是一种 “黑箱” 复用,因为细节对象的内容对客户端来说是不可见的。
设计模式类型
创建型: 工厂方法(factory method)模式 抽象工厂(abstract factory)模式 原型(prototype)模式 单例(singleton)模式 Java单例模式 建造者(builder)模式 Java 建造者模式
结构型: 适配器(adapter)模式 桥接(bridge)模式 组合(composite)模式 装饰(decorator)模式 外观(facade)模式 享元(flyweight)模式 代理(proxy)模式
行为型: 责任链(chain of responsibility)模式 命令(command)模式 解释器(interpreter)模式 迭代器(iterator)模式 中介者(mediator)模式 备忘录(memento)模式 观察者(observer)模式 状态(state)模式 策略(strategy)模式 模板方法(template method)模式 访问者(visitor)模式
|