《软件设计模式与体系结构》学习笔记:软件设计模式概论
软件设计模式的概念
软件设计模式是对软件设计经验的总结,是对软件设计中反复出现的设计问题的已被验证的成功解决之道。大量的软件设计模式都是之前从事软件设计开发的前人经过大量的实践而摸索出来的,用于帮助后来者快速高效且高质从事软件开发的。
软件设计模式的要素
软件设计模式一般会包含四个基本要素:
- 模式名称:此种设计模式的名字;
- 问题:是设计者所面临的设计场景,也就是此种设计模式所适用的情况;
- 解决方案:描述设计细节,通常会采取UML等图示的方式来进行设计模式的详细描述;
- 效果:描述适用此设计模式的优势与劣势,包括面向软件的质量属性等。
软件设计模式的分层
软件设计模式根据问题的规模可以分为三个层次
架构模式 -> 设计模式 -> 习惯用法
- 架构模式:描述系统级的结构组成、相互关系及相关约束,如MVC模式;
- 设计模式:针对系统局部设计问题给出的解决方案,一般情况下,设计模式指的就是这一层次的;
- 习惯用法:与具体编程语言相关的一种底层模式。
软件设计模式的分类
《软件设计模式与体系结构》一书中将设计模式归类如下:
面向对象 | 分布式计算 | 企业应用软件 | 面向服务的体系结构(SOA) |
---|---|---|---|
创建型模式 | 从混沌到结构 | 领域逻辑模式 | 服务设计模式 |
结构型模式 | 分布式基础设施 | 数据源结构模式 | 服务库设计模式 |
行为型模式 | 事件分离与分发 | 对象——关系行为模式 | 服务组合设计模式 |
接口划分 | 对象——关系结构模式 | ||
组件划分 | 对象——关系元数据映射模式 | ||
应用控制 | Web表现模式 | ||
并发 | 分布模式 | ||
同步 | 离线并发模式 | ||
对象交互 | 会话状态模式 | ||
适配与扩展 | 基本模式 | ||
模态行为 | |||
资源管理 | |||
数据库访问 |
感悟
在我们日常学习中,有些时候不知不觉的应用到某些设计模式,但我们很难意识到这可以抽象为一种思想方法,并且是可以被他人当为一种模式的设计方法。所以,在以后我们又碰到类似问题时,又会重新将以前的思路再来一次,等到脑中的设计思想快成型的时候,才会恍然大悟,一拍脑门道:“哦,这个东西我好像上一次做过。”
设计模式是前人经过验证的成功的解决方案,我们应该要善于学习,学会运用,别辜负了前辈们的心血。站在巨人的肩膀上,我们会看得更远。