首页 > 编程语言 >建造者模式java

建造者模式java

时间:2022-10-09 22:13:36浏览次数:38  
标签:java String cb void 建造 System 模式 computer public

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

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

 

 

 

 代码按照图中顺序

package test5;

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) {
        CPU = cPU;
    }
    public String getRAM() {
        return RAM;
    }
    public void setRAM(String rAM) {
        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;
    }
}
package test5;

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 test5;

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

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



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

import java.util.Scanner;

public class main {
    public static void main(String args[])
    {
        ComputerBuilder cb = null;
        System.out.println("请选择:1、笔记本 2、台式机");
        Scanner input=new Scanner(System.in);
        int i=input.nextInt();
        if(i==1) {
            cb=new LaptopComputerBuilder();
        }else if(i==2) {
            cb=new DesktopComputerBuilder();
        }else {
            System.out.println("输入无效!");
        }
        Director dir=new Director();
        dir.setComputerBuilder(cb);
        Computer computer=dir.construct();
        System.out.println("计算机组成:");
        System.out.println(computer.getCPU());
        System.out.println(computer.getRAM());
        System.out.println(computer.getHard());
        System.out.println(computer.getHost());
    }
}

//run此文件

 

 

 

 

 

标签:java,String,cb,void,建造,System,模式,computer,public
From: https://www.cnblogs.com/rongzhang/p/16773872.html

相关文章

  • 建造者模式C++
    [实验任务一]:计算机组装使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机......
  • 原型模式C++
    [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。#include<iostre......
  • Java中StringBuffer的获取当前容量的方法capacity的用法
    我们都知道,java中字符串都是用String,内容和长度都是不可变的。如果想使用可变长度的,可以使用类StringBuffer该类的方法是安全的,可以保证线程安全   使用的过程中学......
  • 02@Docker网络介绍及网络模式的使用
    文章目录​​Docker网络的介绍​​​​一、Docker网络原理​​​​1、docker网络介绍​​​​2、Docker网络原理​​​​二、docker网络基础​​​​【网络命名空间】​​​......
  • 单例模式
    publicclassSingleton{privatestaticclassSingletonHolder{privatestaticfinalSingletonINSTANCE=newSingleton();}privateS......
  • Java封装、继承、多态、抽象、接口基础知识
    Java封装、继承、多态、抽象、接口基础知识封装面向对象三大特性:封装、继承、多态(四大特性则多一个抽象)定义把对象的属性和方法结合为一个独立的整体,并尽可能隐藏对......
  • 面试官:工厂方法模式是什么?
    真正的大师永远怀着一颗学徒的心吃不了学习的苦就要吃生活的苦文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟!回复【项目......
  • window java 字节码修改
    前提: win10安装包:1、 JDK10.0.1.msi(包含jre环境),  JDK的安装路径2、 jclasslib 6.0.3  用于编辑常量3、JBE  用于编辑函数方法,鸡肋,不建议使用......
  • java_day09
    Java基础Java面向对象三大特性多态即同一个方法可以根据发送对象的不同采用多种不同的行为方式一个对象的实际类型是确定的,但是指向对象的引用类型可以是很多......
  • Java设计模式 —— 组合模式
    9组合模式9.1组合模式概述CompositePattern:组合多个对象形成树形结构以表示具有部分-整体关系的层次结构。组合模式使得客户端可以统一处理单个对象和组合对象。......