浅析 Refined Architecture 阶段

  从概念架构到细化架构,先设计概念架构,构思关键问题的解决策略;再进行细化架构的设计,以保证为开发提供足够的指导和限制。简单理解,细化架构就是分割,将大问题化成小问题,将概念架构中的设计进行实现,概念架构难以支持并行开发,所以要有细化架构的过程,将概念具体化,用代码进行实现,细化架构和概念架构之间的典型差异:
 
细化架构
概念架构
接口
核心地位
不关心明确的接口定义,只有抽象的组件和抽象的交互机制
子系统
通过子系统和模块来分割整个系统,并且子系统往往有明确的接口
只有抽象的组件,这些组件没有接口,只有职责,一般是处理组件、数据组件或连接组件中的一种。(有大组件分解成小组件的设计决策,非子系统的含义)
交互机制
“实在”的交互机制,如基于接口编程、消息机制或远程方法调用
概念化的

从第十一章中:细化架构的故事中总结摘录出以下一部分:

  架构设计仅仅进行到概念架构层面,对支持团队的并行开发而言是远远不够的;对于多视图方法,要有意识地调整、扩充、改进经典方法以符合实践的真正需要。

  从概念架构到细化架构,先设计概念架构,构思关键问题的解决策略;再进行细化架构的设计,以保证为开发提供足够的指导和限制。

5视图方法
核心思想:从不同角度,规划“分割”与“交互”。
5视图方法包括逻辑视图、开发视图、运行视图、物理视图、数据视图。
逻辑架构

一线架构师最缺的不是理论, 也不是技术,而是位于理论和技术之间的“实践策略”和“实践套路”。就划分子系统这个架构师必做的工作而言,其实践策略可归纳为3种:分层的细化;分区的引入;机制的提取。

  逻辑架构设计的10条经验要点:划分子系统:分层的细化;目划分子系统:分区的引入;划分子系统:机制的提取;接口的定义:协作决定接口;选用序列图:杜绝协作圉;包-接口图: 从结构到行为的桥;灰盒包圈:描述关键子系统;循序渐进的螺旋思维;设计模式:包内结构;设计模式:包间协作。

  设计模式用于逻辑架构设计中主要的两种方式:明确子系统内的结构;明确包间的协作关系。

划分子系统
划分子系统的策略:
  1. 分层的细化
  2. 分区的引入
  3. 机制的提取
(1)分层(Layer)的细化
(2)分区的引入
分区是一种单元,它位于某个层的内部,其粒度比层要小。如图:
将每一层次进行细化分,换分成粒度更小的分区,在“分而治之”的前提下,再次“分而治之”。
(3)机制的提取
机制才是设计的灵魂所在……否则我们就将不得不面对一群无法相互协作的对象,他们相互推操着做自己的事情而毫不关心其他对象。
软件中的机制,是指预先定义好的、能够完成预期目标的、基于抽象角色的写作方式。机制不仅包含了协作关系,同时也包含了协作流程。
协作可以定义为“多个对象为完成某种目标而进行的交互”,“协作和机制”的区别:
    基于接口(和抽象类)的协作是机制,基于具体类的协作则算不上机制。
在这块儿呢,我理解为将每个协作封装成接口,通过接口调用,就是机制。
架构设计的分割示意图:
子系统划分的4个重要原则:
 
 

猜你喜欢

转载自www.cnblogs.com/jccjcc/p/12672587.html
今日推荐