软件设计5

实验5:建造者模式

 

[实验任务一]:计算机组装

 

使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。

 

实验要求:

 

1. 画出对应的类图;

 

 

 

 

 

2. 提交源代码;

 

1.Builder

 

public abstract class Builder {

 

    Computer computer = new Computer();

 

    abstract public void buildZhuJi();

 

    abstract public void buildYinPan();

 

    abstract public void buildCpu();

 

    abstract public void buildNeiCun();

 

    public Compture getCompture(){

 

        return compture;

 

    }

 

}

 

① Compture

 

public class Compture {

 

    private String cpu;

 

    private String neiCun;

 

    private String yinPan;

 

    private String zhuJi;

 

    public String getZhuJi() {

 

        return zhuJi;

 

    }

 

    public void setZhuJi(String zhuJi) {

 

        this.zhuJi = zhuJi;

 

    }

 

    public String getYinPan() {

 

        return yinPan;

 

    }

 

    public void setYinPan(String yinPan) {

 

        this.yinPan = yinPan;

 

    }

 

    public String getNeiCun() {

 

        return neiCun;

 

    }

 

    public void setNeiCun(String neiCun) {

 

        this.neiCun = neiCun;

 

    }

 

    public String getCpu() {

 

        return cpu;

 

    }

 

    public void setCpu(String cpu) {

 

        this.cpu = cpu;

 

    }

 

}

 

② Factory

 

public class Factory {

 

    private Builder comptureKind;

 

    public void setCompture(Builder kind) {

 

        this.comptureKind = kind;

 

    }

 

    public Compture construct(){

 

        comptureKind.buildCpu();

 

        comptureKind.buildYinPan();

 

        comptureKind.buildZhuJi();

 

        comptureKind.buildNeiCun();

 

        return comptureKind.getCompture();

 

    }

 

}

 

③ LapBuilder

 

public class LapBuilder extends Builder{

 

    @Override

 

    public void buildZhuJi() {

 

        compture.setZhuJi("LZJ");

 

    }

 

    @Override

 

    public void buildYinPan() {

 

        compture.setYinPan("LYP");

 

    }

 

    @Override

 

    public void buildCpu() {

 

        compture.setCpu("LC");

 

    }

 

    @Override

 

    public void buildNeiCun() {

 

        compture.setNeiCun("LNC");

 

    }

 

}

 

④ Store

 

public class Store {

 

    public static void main(String[] args) {

 

        Builder lap;

 

        Factory factory=new Factory();

 

        for (int i = 0; i < 2; i++) {

 

            if(i==1)

 

                lap = new LapBuilder();

 

            else

 

                lap=new TaiShiBuilder();

 

            factory.setCompture(lap);

 

            factory.construct();

 

            System.out.println(lap.getCompture().getCpu());

 

            System.out.println(lap.getCompture().getNeiCun());

 

            System.out.println(lap.getCompture().getYinPan());

 

            System.out.println(lap.getCompture().getZhuJi());

 

        }

 

 

 

    }

 

}

 

⑤ TaiShiBuilder

 

public class TaiShiBuilder extends Builder{

 

    @Override

 

    public void buildZhuJi() {

 

        compture.setZhuJi("TZJ");

 

    }

 

    @Override

 

    public void buildYinPan() {

 

        compture.setYinPan("TYP");

 

    }

 

    @Override

 

    public void buildCpu() {

 

        compture.setCpu("TC");

 

    }

 

    @Override

 

    public void buildNeiCun() {

 

        compture.setNeiCun("TNC");

 

    }

 

}

 

3.注意编程规范。

 

posted @   那年晚风可期  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示