测试01 – 认识软件体系结构

阅读王概凯的《架构漫谈》笔记前四章,用自己的话回答下列问题,将文件保存成班级学号姓名,发送给课代表,下课后提交。

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("做饭应在刷碗之前");

    }

}

 

posted @ 2022-03-03 14:48  往心。  阅读(86)  评论(0)    收藏  举报