首页 > 其他分享 >建造者模式

建造者模式

时间:2024-12-30 22:32:41浏览次数:9  
标签:builder String void 建造 模式 computer Override public

实验5:建造者模式

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

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

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

 

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

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

实验要求:

1. 画出对应的类图;

 

2.提交源代码;

// 计算机类

class Computer {

    private String cpu;

    private String ram;

    private String hardDrive;

    private String caseType;

 

    public void setCpu(String cpu) {

        this.cpu = cpu;

    }

 

    public void setRam(String ram) {

        this.ram = ram;

    }

 

    public void setHardDrive(String hardDrive) {

        this.hardDrive = hardDrive;

    }

 

    public void setCaseType(String caseType) {

        this.caseType = caseType;

    }

 

    @Override

    public String toString() {

        return "Computer [CPU=" + cpu + ", RAM=" + ram + ", Hard Drive=" + hardDrive + ", Case Type=" + caseType + "]";

    }

}

 

// 抽象建造者类

abstract class Builder {

    protected Computer computer;

 

    public void createNewComputer() {

        computer = new Computer();

    }

 

    public Computer getComputer() {

        return computer;

    }

 

    public abstract void buildCPU();

    public abstract void buildRAM();

    public abstract void buildHardDrive();

    public abstract void buildCaseType();

}

 

// 笔记本建造者类

class LaptopBuilder extends Builder {

    @Override

    public void buildCPU() {

        computer.setCpu("Intel i5");

    }

 

    @Override

    public void buildRAM() {

        computer.setRam("8GB");

    }

 

    @Override

    public void buildHardDrive() {

        computer.setHardDrive("512GB SSD");

    }

 

    @Override

    public void buildCaseType() {

        computer.setCaseType("Ultrabook");

    }

}

 

// 台式机建造者类

class DesktopBuilder extends Builder {

    @Override

    public void buildCPU() {

        computer.setCpu("AMD Ryzen 5");

    }

 

    @Override

    public void buildRAM() {

        computer.setRam("16GB");

    }

 

    @Override

    public void buildHardDrive() {

        computer.setHardDrive("1TB HDD");

    }

 

    @Override

    public void buildCaseType() {

        computer.setCaseType("Tower");

    }

}

 

// 指导者类

class Director {

    private Builder builder;

 

    public Director(Builder builder) {

        this.builder = builder;

    }

 

    public Computer constructComputer() {

        builder.createNewComputer();

        builder.buildCPU();

        builder.buildRAM();

        builder.buildHardDrive();

        builder.buildCaseType();

        return builder.getComputer();

    }

}

 

// 测试类

public class Main {

    public static void main(String[] args) {

        // 建造笔记本电脑

        Builder laptopBuilder = new LaptopBuilder();

        Director laptopDirector = new Director(laptopBuilder);

        Computer laptop = laptopDirector.constructComputer();

        System.out.println(laptop);

 

        // 建造台式机

        Builder desktopBuilder = new DesktopBuilder();

        Director desktopDirector = new Director(desktopBuilder);

        Computer desktop = desktopDirector.constructComputer();

        System.out.println(desktop);

    }

}

标签:builder,String,void,建造,模式,computer,Override,public
From: https://www.cnblogs.com/Christmas77/p/18642599

相关文章

  • 单例模式
    实验7:单例模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图; 2. ......
  • 适配器模式
    实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 画出对应的类图; 2.......
  • 桥接模式
    实验9:桥接模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求......
  • 装饰模式
    实验11:装饰模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解装饰模式的动机,掌握该模式的结构;2、能够利用装饰模式解决实际问题。 [实验任务一]:手机功能的升级用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而......
  • 组合模式
    实验10:组合模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。实验要求:1.文件的执行不需真正实现,只需简单提......
  • 解锁 Java 解释器模式:赋予程序理解 “新语言” 的魔力
    解锁Java解释器模式:赋予程序理解“新语言”的魔力在Java编程的广袤天地中,我们时常面临需要处理自定义规则、语法或逻辑表达式的场景。此时,解释器模式(InterpreterPattern)宛如一位神奇的翻译官,能够将这些看似晦涩难懂的“新语言”,转化为计算机能够理解并执行的指令,为......
  • 揭秘 Java 中介者模式:解耦复杂交互的神奇钥匙
    揭秘Java中介者模式:解耦复杂交互的神奇钥匙在Java开发的浩瀚天地里,随着系统复杂度的与日俱增,对象之间的交互常常变得错综复杂,宛如一团乱麻。此时,中介者模式(MediatorPattern)宛如一位智慧的协调大师,挺身而出,为我们理清理顺这些复杂的关系,打造更为优雅、易于维护的代码架......
  • 深入理解 Java 模板模式:代码复用与架构优化的利器
    深入理解Java模板模式:代码复用与架构优化的利器在Java编程世界中,设计模式如同智慧的结晶,帮助开发者应对各种复杂的软件开发需求。其中,模板模式(TemplatePattern)以其独特的代码复用和流程标准化能力,成为构建灵活且可维护系统的关键工具。今天,让我们一同深入探究Java中......
  • Spring中的设计模式
    Spring中的设计模式控制反转(IoC)和依赖注入(DI)IoC是一个原则,而不是一个模式,以下模式(但不限于)实现了IoC原则。**SpringIoC容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。**IoC容器负责创......
  • 超低功耗段LCD液晶段码显示屏驱动芯片(ic)VKL128 LQFP44 I2C通信接口/可配置4种功耗模
    产品品牌:永嘉微电/VINKA产品型号:VKL128封装形式:SSOP44概述VKL128是一个点阵式存储映射的LCD驱动器,可支持最大128点(32SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,可配置4种功耗模式,也可通过关显示和关振荡器进入省电模式。其高抗干扰,低功耗的特性适用于......