设计模式

面向对象设计原则

  • 可维护性(Maintainability):指软件能够被理解、改正、适应及扩展的难易程度。

  • 可复用性(Reusability):指软件能够被重复使用的难易程度。

img

面向对象设计的目标之一在于支持可维护性复用

设计模式

设计模式的分类

  • 根据目的(模式是用来做什么的)可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三类:

    • 创建型模式主要用于创建对象
    • 结构型模式主要用于处理类或对象的组合
    • 行为型模式主要用于描述类或对象如何交互和怎样分配职责
  • 根据范围,即模式主要是处理类之间的关系还是处理对象之间的关系,可分为类模式对象模式两种:

    • 类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是一种静态关系;
    • 对象模式处理对象间的关系,这些关系在运行时变化,更具动态性。

img

创建型模式

img

结构型模式

img

行为型模式

img

一些名词

  • 模式(Pattern) 起源于建筑业。

  • 模式:

Context(模式可适用的前提条件);

Theme或Problem(在特定条件下要解决的目标问题);

Solution(对目标问题求解过程中各种物理关系的记述)。

  • 模式是特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案

A pattern is a successful or efficient solution to a recurring problem within a context.

  • 软件模式:在一定条件下软件开发问题及其解法

问题描述;前提条件(环境或约束条件);解法;效果。

  • 大三律(Rule of Three):只有经过3个以上不同类型(或不同领域)的系统的校验,一个解决方案才能从候选模式升格为模式。

  • 设计模式(Design Pattern):一套被反复使用的多数人知晓的经过分类编目的代码设计经验的总结。

是一种用于对软件系统中不断重现的设计问题的解决方案进行文档化的技术。

是一种共享专家设计经验的技术。

  • 目的:为了可重用代码、让代码更容易被他人理解、提高代码可靠性。

  • 设计模式的定义

设计模式是在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的相互作用。

Design patterns are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.

  • 设计模式的基本要素:关键要素

模式名称问题、目的、解决方案效果、实例代码和相关设计模式。

Built with Hugo
Theme Stack designed by Jimmy