阅读王概凯的《架构漫谈》笔记前四章,用自己的话回答下列问题,将文件保存成班级学号姓名,发送给课代表,下课后提交。
1、 什么是架构?
架构:是将一个工程切分成不同的部分,由不同的成员完成不同的分工,并通过建立各自的有机沟通机制使得各部分结合为一个整体,并完成整个工程。
2、 为什么要出现架构?
(1 个人的结构在发展中限制了自身的发展
(2 为了缩短较大工程的工作时间、提高效率
(3 对系统的更高追求
3、 架构解决谁的问题?
人的问题
4、实例分析:用MVC模式分析自己家庭架构(要求绘制家庭体系架构图)。
(1)介绍家庭成员;
爸爸、妈妈、姐姐、自己
(2)介绍家庭业务(例如做饭、洗衣、打扫卫生、刷完等一系列业务)。
打扫卫生、做饭、洗衣、刷碗
(3)介绍谁执行什么业务、怎么做,如何评价业务的效果,评价的标准是什么?
爸爸:打扫卫生(扫地、拖地、擦桌子)地面是否干净、桌子是否整洁 标准:地面干净、桌面整洁
妈妈:做饭(蒸米、炒菜、熬粥)蒸米是否蒸熟、炒菜是否炒熟、熬粥是否熬好 标准:蒸米蒸熟、炒菜炒熟、粥熬好
姐姐:洗衣(放衣服、放洗衣液、搓)衣服是否干净 标准:衣服干净
自己:刷碗(放水、放入洗洁精、刷)碗是否干净 标准:碗干净
(4)各项业务触发的条件。
打扫卫生:地面脏、桌面不整洁
做饭:到饭点了、饿了
洗衣:衣服脏了
刷碗:吃完饭了
(5)根据(2)、(3)、(4)的描述绘制家庭体系架构图;
(6)代码建模:
①模型类:创建一个family(家中各项业务定义成为方法,家庭成员作为变量)。
public class Family{ private String father = "爸爸"; private String mother = "妈妈"; private String sister = "姐姐"; private String my = "自己"; public String getFather() { return father; } public void setFather(String father) { this.father = father; } public String getMother() { return mother; } public void setMother(String mother) { this.mother = mother; } public String getSister() { return sister; } public void setSister(String sister) { this.sister = sister; } public String getMy() { return my; } public void setMy(String my) { this.my = my; } public static String dasaoWeisheng(){ return "打扫卫生,扫地、拖地、擦桌子"; } public static String zuoFan(){ return "做饭,蒸米、炒菜、熬粥"; } public static String xiYi(){ return "洗衣服,洗外套、洗裤子"; } public static String shuaWan(){ return "刷碗,刷盘子、刷碗"; } }
②执行类:familyView 是一个把家庭业务执行的视图类(例如做完饭后输出结果 “谁做的饭,做得什么饭”)。
public class FamilyView extends Family{ public static void main(String[] args) { Family family = new Family(); System.out.println(family.getFather()+dasaoWeisheng()); System.out.println(family.getMother()+zuoFan()); System.out.println(family.getSister()+xiYi()); System.out.println(family.getMy()+shuaWan()); } }
③控制类:familyController,显示是负责存储数据到family对象中的控制器类,并相应地更新视图familyView,即指派谁执行相应的业务,业务之间的关联关系(例如做饭、刷完之间的前后关联关系)。
public class FamilyController { public static void main(String[] args) { Family family = new Family(); family.setFather("爸爸"); family.setMother("妈妈"); family.setSister("姐姐"); family.setMy("自己"); System.out.println("做饭应在刷碗之前"); } }