qwb0614

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  187 随笔 :: 0 文章 :: 0 评论 :: 2048 阅读

实验5:建造者模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解建造者模式的动机,掌握该模式的结构;

2、能够利用建造者模式解决实际问题。

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

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

实验要求:

1.  画出对应的类图;

 

2.提交源代码;

3.注意编程规范。

复制代码
package ruanjiansheji.shiyan5;

public class Computer {
    private String CPU;
    private String RAM;
    private String Hard;
    private String Host;

    public String getCPU() {
        return CPU;
    }

    public void setCPU(String CPU) {
        this.CPU = CPU;
    }

    public String getRAM() {
        return RAM;
    }

    public void setRAM(String RAM) {
        this.RAM = RAM;
    }

    public String getHard() {
        return Hard;
    }

    public void setHard(String hard) {
        Hard = hard;
    }

    public String getHost() {
        return Host;
    }

    public void setHost(String host) {
        Host = host;
    }

    @Override
    public String toString() {
        return "Computer{" +
                "CPU='" + CPU + '\'' +
                ", RAM='" + RAM + '\'' +
                ", Hard='" + Hard + '\'' +
                ", Host='" + Host + '\'' +
                '}';
    }
}
package ruanjiansheji.shiyan5;

public abstract class ComputerBuilder {
    protected Computer computer=new Computer();
    public abstract void buildCPU();
    public abstract void buildRAM();
    public abstract void buildHard();
    public abstract void buildHost();
    public Computer getComputer()
    {
        return computer;
    }
}
package ruanjiansheji.shiyan5;

public class DesktopComputer extends ComputerBuilder{
    public void buildCPU() {
        computer.setCPU("台式机CPU");
    }
    public void buildRAM() {
        computer.setRAM("台式机内存");
    }
    public void buildHard() {
        computer.setHard("台式机硬盘");
    }
    public void buildHost() {
        computer.setHost("台式机主机");
    }
}
package ruanjiansheji.shiyan5;

public class Director {
    private ComputerBuilder computerBuilder;
    public void setComputerBuilder(ComputerBuilder c){
        computerBuilder=c;
    }
    public Computer construct(){
        computerBuilder.buildCPU();
        computerBuilder.buildRAM();
        computerBuilder.buildHard();
        computerBuilder.buildHost();
        return computerBuilder.getComputer();
    }
}
package ruanjiansheji.shiyan5;

public class LaptopComputer extends  ComputerBuilder{
    public void buildCPU() {
        computer.setCPU("笔记本CPU");
    }
    public void buildRAM() {
        computer.setRAM("笔记本内存");
    }
    public void buildHard() {
        computer.setHard("笔记本硬盘");
    }
    public void buildHost() {
        computer.setHost("笔记本主机");
    }
}
package ruanjiansheji.shiyan5;

public class main {
    public static void main(String[] args) {
        Director director=new Director();
        ComputerBuilder cb;
        System.out.println("安装笔记本");
        cb=new LaptopComputer();
        director.setComputerBuilder(cb);
        Computer Laptop = director.construct();
        System.out.println(Laptop.toString());



        System.out.println("安装台式机");
        cb=new DesktopComputer();
        director.setComputerBuilder(cb);
        Computer Desktop = director.construct();
        System.out.println(Desktop.toString());
    }
}
复制代码

 

posted on   嘎嘎鸭1  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示