一、何为模式
模式:根据以往的经验总结出来的可重复使用的设计方案,一个模式包含如下几个元素:
1、模式的名称
2、模式的应用场景以及所能解决的问题
3、解决方案
4、使用该模式的后果
二、模式分类
通常说的模式分3类:
1、架构模式
“软件架构设计”使用的基本原则和策略;架构模式描述了软件系统基本的结构组织策略,针对不同的软件类型,有不同的架构模式:
(1) 系统软件:分层架构、管道和过滤器架构、黑板架构
(2) 分布式软件:经纪人架构、客户/服务器架构、点对点架构
(3) 交互软件:模型-视图-控制器架构
2、设计模式
“面向对象设计”过程中经常运用。
设计模式是描述软件系统的某一局部不断重复的核心解决方案,常见的有23种设计模式。
后续博文中将重点推出常用设计模式的应用场景。
3、通用职责分配软件模式
GRASP模式描述了在面向对象设计过程中把职责分配给系统中不同对象的有效经验和基本原则:
(1) 专家:把职责分配给拥有该信息的专家(对象)
(2) 创建者:把创建对象B的职责分配给关联B的对象A进行
(3) 低耦合
(4) 高内聚
(5) 控制者:把协调系统消息的职责分配给不同的控制类,这样就避免了上帝控制(管理)类。
(6) 多态:
(7) 纯虚构:非C++的virtaul fun() = 0 的纯虚函数,它是人造类,不代表现实世界中的任何实体;分析模型(面向对象分析的静态模型)中大部分的控制类和边界类属于纯虚构的类。
(8) 中介者
(9) 不要和陌生人讲话