设计模式应用——《一线架构师实践指南》笔记之四

来源:互联网 发布:统计bugs软件下载 编辑:程序博客网 时间:2024/05/17 23:07
逻辑架构设计的10条经验
 
  1. 划分子系统:分层的细化
  2. 划分子系统:分区的引入
  3. 划分子系统:机制的提取
  4. 接口的定义:协作决定接口
  5. 选用序列图:杜绝协作图(专注于于行为设计,协作图结构气太重)
  6. 包-接口图:从结构到行为的桥
  7. 灰盒包图:描述子系统
  8. 循序渐进的螺旋思维
  9. 设计模式:包内结构
  10. 设计模式:包间协作

一线架构师实践指南——原书
贯穿案例

下面,继续本书的贯穿案例:PASS系统的架构设计。首先应注意两点:

第一,细化架构设计的重要"输入"之一是概念架构设计,不应忽视,毕竟细化架构设计是整个架构设计过程中的一个阶段。例如,在第9章进行的"基于鲁棒图的初步设计",以及第9章进行的高层分割考虑(如图13-29所示)。

498)this.style.width=498;" height=553<  

第二,5视图方法的运用,总体而言是5个视图的设计穿插进行的,对复杂系统而言,根本不可能将逻辑视图设计完全之后再考虑其他视图。而本例的PASS系统具有很强的分布特点,所以必然较早地考虑到物理视图对逻辑设计的影响。例如,PASS服务器作为一个物理架构元素的"节点(Node)",它之上"跑"的逻辑架构元素"逻辑层(Layer)"有哪些呢?如图13-30所示,它包含了业务层、集成层、数据访问层,但未包括展现层程序。

498)this.style.width=498;" height=258<  

进入细化架构阶段的逻辑架构设计,常以初步设计为基础,借助分层细化、分区引入、机制提取等手段。如图13-31所示,对PASS服务器软件进行逻辑架构的结构设计。

498)this.style.width=498;" height=214<  

从结构设计跳到行为设计,常用手段是画序列图。图13-32是"实时检查处方功能"的序列图--它处在逻辑架构设计的"螺旋式"整体思维套路的起始循环,是进一步深入设计的基础。

498)this.style.width=498;" height=475<  

有了不同职责单元之间具体的协作关系,就可以展开细致的"质疑"了--别忘了,架构设计是质疑驱动的(相关标注同样显示在图13-32上)。

处方检查服务能被医生工作站访问到吗?毕竟前者位于PASS服务器上……于是,设计中要进一步明确"远程调用机制"。

这样一个分布式的系统,访问服务之前要经过什么样的验证呢……于是,进一步考虑安全性的支持。

不同的医生不停地开处方,处方检查功能会不会很慢?常用药的用药规则应该常驻内存,这样才能提升性能……于是,设计中要进一步明确Cache等提升性能的机制。

……

于是,自然而然地,沿着逻辑架构设计的"螺旋式"整体思维套路思考,我们就能意识到"结构设计"要继续完善和细化。基于对远程调用、安全性、高性能的质疑,改进"结构设计"后就得到如图13-33所示的逻辑架构图。

498)this.style.width=498;" height=242<  
原创粉丝点击