软件领域中面向对象的设计模式
前面写了面向对象的设计原则,它仅为一种思想、理论,为设计提供了基本的指导思想,并没有为实践提供具体的手段。
软件设计者掌握了LSP、OCP、DIP这些思想,但在实践中为了保证方案能够这些原则,还需要做出更多的设计决策,例如如何根据需求的变化点进行抽象、如何定义抽象类或接口、如何进行职责分配等。
这些设计决策取决于不同的业务场景,需要更多的实践经验和分析设计能力。那么有没有更直接的技术能够直接应用到各种场景中,并很好地遵循面向对象的设计原则呢?答案是有,这就是面向对象的设计模式。
“每一个模式描述了一个在我们的环境中不断重复发生的问题,以及该问题的核心解决方案。这样就能一次又一次地使用该解决方案,不必做重复劳动。”
面向对象的设计模式是系统设计中面临设计问题时的解决方案。不同于设计原则,每个设计模式都提供了具体的解决方案,包括且不限于抽象类或接口的定义、职责的分配等模型。
模式与设计模式
- 模式分类
- 设计模式的分类
- 设计模式清单:
- 目录1
- 目录2
模式分类
设计模式的分类
- 按照设计模式的作用范围(类或者对象实例)的角度可分为类模式和对象模式。
-
- 类模式主要处理类和派生类之间的继承关系,这种关系是静态的、在编译期间确定的;
-
- 对象模式主要处理对象之间的组织关系,这种关系是动态的、可在运行时变化的。
- 按照设计模式的目的(完成哪类工作)的角度可分为创建型模式、结构型模式和行为型模式。
-
- 创建型模式用于处理对象的创建过程,它的类模式是将对象的部分创建工作延迟到子类;它的对象模式是延迟到另一个对象中。
-
- 结构型模式用来处理类或对象的组织结构,它的类模式使用继承机制来组合类;它的对象模式描述对象间的组装方式。
-
- 行为型模式用来指导类和对象之间的交互及职责分配关系,它的类模式使用继承描述算法与控制规则;它的对象模式描述一组对象怎样协作完成单个对象无法完成的工作。
- 行为型模式用来指导类和对象之间的交互及职责分配关系,它的类模式使用继承描述算法与控制规则;它的对象模式描述一组对象怎样协作完成单个对象无法完成的工作。
大部分设计模式都是对象模式,其中的适配器模式是唯一的既可以用类模式实现,又可以用对象模式实现的设计模式。
设计模式清单: