1、 什么是架构?
答:由于时间和能力的有限性,参与者为了完成复杂系统的目标而主动进行分工,并建立好机制合并,使得问题和任务高质量解决来满足人们需求。而根据要解决的问题,主动地去规划、分工、合并问题的过程及解决问题的方案就是架构。
2、 为什么要出现架构?
答:
(1)每个人能力的有限性
(2)时间有限性
(2)系统目标的复杂性
(3)人们对系统目标高质量的追求
3、 架构解决谁的问题?
答:架构解决人的问题
而架构师解决的基本是别人的问题
4、实例分析:用MVC模式分析自己家庭架构(要求绘制家庭体系架构图)。
(1)介绍家庭成员;
父亲、母亲、弟弟、我
(2)介绍家庭业务(例如做饭、洗衣、打扫卫生、刷完等一系列业务)。
做饭、洗衣、打扫卫生、刷碗
(3)介绍谁执行什么业务、怎么做,如何评价业务的效果,评价的标准是什么?
谁 |
业务 |
怎么做 |
如何评价业务效果 |
评价标准 |
母亲 |
做饭 |
买菜-洗菜-炒菜 |
饭菜可口程度、量合适程度 |
饭菜是否适量、符合大众口味 |
父亲 |
洗衣 |
收衣服-洗衣服-晾衣服 |
衣服干净程度 |
衣服是否无异味、无污渍 |
我 |
刷碗 |
收碗筷-洗碗筷-放碗筷 |
碗筷干净程度 |
碗筷是否无油渍、无异味 |
弟弟 |
打扫卫生 |
擦灰-扫地-拖地 |
地板干净程度 |
地板是否干净无灰尘 |
(4)各项业务触发的条件。
业务 |
触发条件 |
做饭 |
到饭点 |
洗衣 |
有脏衣服 |
刷碗 |
饭后 |
打扫卫生 |
有灰尘 |
(5)根据(2)、(3)、(4)的描述绘制家庭体系架构图;
(6)代码建模:
①模型类:创建一个family(家中各项业务定义成为方法,家庭成员作为变量)。
②执行类:familyView 是一个把家庭业务执行的视图类(例如做完饭后输出结果 “谁做的饭,做得什么饭”)。
③控制类:familyController,显示是负责存储数据到family对象中的控制器类,并相应地更新视图familyView,即指派谁执行相应的业务,业务之间的关联关系(例如做饭、刷完之间的前后关联关系)。