首页 > 其他分享 >软件设计:实验5:建造者模式

软件设计:实验5:建造者模式

时间:2024-11-27 17:13:37浏览次数:11  
标签:return 软件设计 hardDisk 建造 cpu 实验 memory type public

实验5:建造者模式

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

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

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

 

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

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

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.类图

 

 

 

2. 源代码

// 产品类:Computer

public class Computer {

    private CPU cpu;

    private Memory memory;

    private HardDisk hardDisk;

    private String type;

 

    private Computer(ComputerBuilder builder) {

        this.cpu = builder.cpu;

        this.memory = builder.memory;

        this.hardDisk = builder.hardDisk;

        this.type = builder.type;

    }

 

    public ComputerBuilder getBuilder() {

        return new ComputerBuilder(this);

    }

 

    // Getters and setters

    public CPU getCpu() {

        return cpu;

    }

 

    public void setCpu(CPU cpu) {

        this.cpu = cpu;

    }

 

    public Memory getMemory() {

        return memory;

    }

 

    public void setMemory(Memory memory) {

        this.memory = memory;

    }

 

    public HardDisk getHardDisk() {

        return hardDisk;

    }

 

    public void setHardDisk(HardDisk hardDisk) {

        this.hardDisk = hardDisk;

    }

 

    public String getType() {

        return type;

    }

 

    public void setType(String type) {

        this.type = type;

    }

 

    @Override

    public String toString() {

        return "Computer{" +

                "cpu=" + cpu +

                ", memory=" + memory +

                ", hardDisk=" + hardDisk +

                ", type='" + type + '\'' +

                '}';

    }

 

    // Builder inner class

    public static class ComputerBuilder {

        private CPU cpu;

        private Memory memory;

        private HardDisk hardDisk;

        private String type;

 

        public ComputerBuilder() {

        }

 

        public ComputerBuilder(Computer computer) {

            this.cpu = computer.cpu;

            this.memory = computer.memory;

            this.hardDisk = computer.hardDisk;

            this.type = computer.type;

        }

 

        public ComputerBuilder setCPU(CPU cpu) {

            this.cpu = cpu;

            return this;

        }

 

        public ComputerBuilder setMemory(Memory memory) {

            this.memory = memory;

            return this;

        }

 

        public ComputerBuilder setHardDisk(HardDisk hardDisk) {

            this.hardDisk = hardDisk;

            return this;

        }

 

        public ComputerBuilder setType(String type) {

            this.type = type;

            return this;

        }

 

        public Computer build() {

            return new Computer(this);

        }

    }

}

 

// Component classes

class CPU {

    private String brand;

 

    public CPU(String brand) {

        this.brand = brand;

    }

 

    @Override

    public String toString() {

        return "CPU{" +

                "brand='" + brand + '\'' +

                '}';

    }

}

 

class Memory {

    private int size;

 

    public Memory(int size) {

        this.size = size;

    }

 

    @Override

    public String toString() {

        return "Memory{" +

                "size=" + size +

                '}';

    }

}

 

class HardDisk {

    private int size;

 

    public HardDisk(int size) {

        this.size = size;

    }

 

    @Override

    public String toString() {

        return "HardDisk{" +

                "size=" + size +

                '}';

    }

}

标签:return,软件设计,hardDisk,建造,cpu,实验,memory,type,public
From: https://www.cnblogs.com/xuan-2004/p/18572664

相关文章

  • 软件设计:实验9:桥接模式
    实验9:桥接模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求......
  • 软件设计:实验8:适配器模式
    实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1.画出对应的类图;2.提交源......
  • 软件设计:实验10:组合模式
    实验10:组合模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。实验要求:1.文件的执行不需真正实现,只需简单提......
  • [题解]P8867 [NOIP2022] 建造军营
    P8867[NOIP2022]建造军营只有B国袭破坏的道路是无向图的割边时,这张图才会变得不连通,所以我们进行边双缩点,最终形成一棵树,不妨令根节点为\(1\)。记\(E[u]\)为缩点后的\(u\)包含多少条原图上的边,\(V[u]\)为\(u\)包含多少个原图上的点,并定义\(s[u]\)表示子树\(u\)中的边数。那么......
  • Educator头歌MySQL数据库实验五:授权及回收权限
    在开始讲解以及分享答案之前如果粘贴答案失效,请点击头歌系统右上角的电源键,释放资源重载数据库,再次进入才能正确通过第1关:授予某数据库的所有权限100任务要求参考答案记录评论任务描述相关知识MySql系统库中的权限表访问控制的两个阶段:授予的权限等级:MySQL权限类型grant......
  • GaussDB 数据库实验环境搭建指导
    @目录简介内容描述实验环境说明1GaussDB数据库购买1.1实验介绍1.1.1关于本实验1.1.2实验目的1.2购买GaussDB数据库1.2.1登录华为云1.2.2购买华为云GaussDB数据库简介本指导书适用于在华为云部署购买GaussDB数据库,通过该指导书可以顺利完成GaussDB数据库在华为云的购买。......
  • 软件设计-Tutorial25
    类图:```mermaidclassDiagramclassItem{<<interface>>+accept(Visitorvisitor)}classBook{-Stringtitle+getTitle()+accept(Visitorvisitor)}classElectronic{-String......
  • 上机实验四:SMO 算法实现与测试
    fromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_split,cross_val_score,StratifiedKFoldfromsklearn.svmimportSVCfromsklearn.metricsimportaccuracy_score,precision_score,recall_score,f1_scoreimportnumpyasnp#(1)加载iris数据......
  • 实验 25:访问者模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解访问者模式的动机,掌握该模式的结构;2、能够利用访问者模式法解决实际问题。 [实验任务一]:打包员在我们课堂上的“购物车”的例子中,增加一个新的访问者:打包员,负责对购物车中货物装包。实验要求:1. 画出对应的......
  • 实验 24:模板方法模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解模板方法模式的动机,掌握该模式的结构;2、能够利用模板方法模式解决实际问题。 [实验任务一]:数据库连接对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我们定义了connDB()、openDB()......