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

实验5:建造者模式

时间:2023-11-25 09:05:15浏览次数:34  
标签:String void 建造 模式 computer 实验 Override lap public

实验5:建造者模式

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

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

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

 

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

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

实验要求:

1. 对应的类图如下

 

2. 源代码如下

 

 

 

package com.hua.sjms;
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 Computer getCompture()
    {
        return computer;
    }
}
package com.hua.sjms;
public class Creator {
    private Builder comptureKind;
    public void setCompture(Builder kind) {
        this.comptureKind = kind;
    }
    public Computer construct(){
        comptureKind.buildCpu();
        comptureKind.buildYinPan();
        comptureKind.buildZhuJi();
        comptureKind.buildNeiCun();
        return comptureKind.getCompture();
    }
}  
package com.hua.sjms;
public class Computer {
    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;
    }
}  
package com.hua.sjms;
public class LapBuilder extends Builder{
    @Override
    public void buildZhuJi() {
        computer.setZhuJi("武极");
    }
    @Override
    public void buildYinPan() {
        computer.setYinPan("512G");
    }
    @Override
    public void buildCpu() {
        computer.setCpu("因特尔");
    }
    @Override
    public void buildNeiCun() {
        computer.setNeiCun("16G");
    }
}  
package com.hua.sjms;
public class TaiShiBuilder extends Builder{
    @Override
    public void buildZhuJi() {
        computer.setZhuJi("联想");
    }
    @Override
    public void buildYinPan() {
        computer.setYinPan("1T");
    }
    @Override
    public void buildCpu() {
        computer.setCpu("英伟达");
    }
    @Override
    public void buildNeiCun() {
        computer.setNeiCun("16G");
    }
}  
package com.hua.sjms;
public class Client {
    public static void main(String[] args) {
        Builder lap;
        Creator factory=new Creator();
        for (int i = 0; i < 2; i++) {
            if(i==1) {
                System.out.println("笔记本配置如下");
                lap = new LapBuilder();
            }
            else {
                System.out.println("台式机配置如下");
                lap = new TaiShiBuilder();
            }
            factory.setCompture(lap);
            factory.construct();
            System.out.println("CPU:"+lap.getCompture().getCpu());
            System.out.println("内存:"+lap.getCompture().getNeiCun());
            System.out.println("硬盘:"+lap.getCompture().getYinPan());
            System.out.println("主机:"+lap.getCompture().getZhuJi());
        }
    }
}  

  

 

标签:String,void,建造,模式,computer,实验,Override,lap,public
From: https://www.cnblogs.com/130-gzh/p/17855149.html

相关文章

  • FS2111 是一款低静态电流、高效率、PFM 模式控制的同步升压变换器
    干电池升压芯片是一种能够将3V、3.3V、4.5V、5V等电压升压至所需电压的芯片。这种芯片具有高效率、低功耗、小体积、轻重量等特点,广泛应用于各种需要升压的领域,如手电筒、数码相机、蓝牙耳机等。干电池升压芯片的升压输出范围一般在3V-5V之间可调,可以根据实际需求进行调节。在升压......
  • 实验2-1
    实验2-1最长公共子序列如题:思路:很明显的动态规划问题找出递推公式,《计算机算法设计与分析第五版王晓东》p55建议画图理解s1==s2s1!=s2然后填表s1=abcfbcs2=abfcab(第一组数据)abcfbc0000000a0111111b01222......
  • 实验4:抽象工厂模式
    软件设计                 石家庄铁道大学信息学院 实验4:抽象工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解抽象工厂模式的动机,掌握该模式的结构;2、能够利用抽象工厂模式解决实际问题。 [实验任务一]:人与肤色使用抽象工厂模......
  • 实验2:简单工厂模式
    软件设计                 石家庄铁道大学信息学院 实验2:简单工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解简单工厂模式的动机,掌握该模式的结构;2、能够利用简单工厂模式解决实际问题。 [实验任务一]:女娲造人使用简单工厂模......
  • 实验3:工厂方法模式
    实验3:工厂方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解工厂方法模式的动机,掌握该模式的结构;2、能够利用工厂方法模式解决实际问题。 [实验任务一]:加密算法目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryption......
  • 实验1:UML与面向对象程序设计原则
    实验1:UML与面向对象程序设计原则本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、掌握面向对象程序设计中类与类之间的关系以及对应的UML类图;2、理解面向对象程序设计原则。 [实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:面向对象程序设计中类与类的关......
  • (Python)基于对称点模式(Symmetrized Dot Pattern,SDP)的多元、多通道、多传感器信号融合
    对称点模式(SymmetrizedDotPattern,SDP)算法可将复杂时间序列以散点的形式清晰映射在极坐标图中,可以使原始时域信号通过图形化的方式提高可视化能力。因为极坐标图像的特殊性,多元、多通道、多传感器信号信息可通过SDP方法融合在有限区域中。适用于多元、多通道、多传感器信号的融合......
  • Java实验报告五
    实验五实验名称:文件与I/O流实验目的:掌握文件与输入输出流的使用。实验时间:(2学时)实验类型:验证型实验内容:1.创建类:FindFile.java,遍历当前目录,打印目录中文件名称,目录打印”isDirectory”,文件打印“isfile”。修改程序打印当前目录及子目录信息。提示:当前目录名用......
  • Java实验报告
    实验一实验名称:JAVA中循环结构实验目的:熟悉循环结构,熟悉JAVA类的定义以及参数的传递。实验时间:(2学时)实验类型:验证型实验内容:(1)金字塔:Pyramid.java在屏幕上显示一个由星型符号“*”组成的金字塔图案,要求用户设置金字塔的高度,程序能根据用户设置的高度打印金字塔,......
  • Java设计模式之代理模式
    在某些情况下,我们希望通过一个中间代理来控制对某个对象的访问,这可能是因为原始对象的创建或访问涉及复杂的逻辑,或者我们想要在访问原始对象之前或之后执行一些操作代理模式提供了一个代理对象,它充当了原始的对象的替代品,以控制对原始对象的访问。代理对象与原始对象实现相同的接口......