10.9每日总结

软件设计                  石家庄铁道大学信息学院

 

实验5:建造者模式

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

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

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

 

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

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

实验要求:

 

package qb;

 

public class Computer {

   private String cpu;

   private String memory;

   private String hardDisk;

   private String motherboard;

   private String type;

 

   public void setCpu(String cpu) {

       this.cpu = cpu;

   }

 

   public void setMemory(String memory) {

       this.memory = memory;

   }

 

   public void setHardDisk(String hardDisk) {

       this.hardDisk = hardDisk;

   }

   public void setMotherboard(String motherboard) {

       this.motherboard = motherboard;

   }

 

   public void setType(String type) {

       this.type = type;

   }

 

   @Override

   public String toString() {

       return "Computer{" +

               "cpu='" + cpu + '\'' +

               ", memory='" + memory + '\'' +

               ", hardDisk='" + hardDisk + '\'' +

               ", motherboard='" + motherboard + '\'' +

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

               '}';

   }

}

 

package qb;

 

public class ComputerAssemblyFactory {

   public static Computer assembleComputer(ComputerBuilder computerBuilder) {

       computerBuilder.buildCPU();

       computerBuilder.buildMemory();

       computerBuilder.buildHardDisk();

       computerBuilder.buildMotherboard();

       return computerBuilder.getComputer();

   }

}

 

package qb;

 

public interface ComputerBuilder {

   void buildCPU();

   void buildMemory();

   void buildHardDisk();

   void buildMotherboard();

   Computer getComputer();

}

 

package qb;

 

public class DesktopBuilder implements ComputerBuilder {

   private Computer computer;

 

   public DesktopBuilder() {

       computer = new Computer();

       computer.setType("Desktop");

   }

 

   @Override

   public void buildCPU() {

       computer.setCpu("Desktop CPU");

   }

 

   @Override

   public void buildMemory() {

       computer.setMemory("Desktop Memory");

   }

 

   @Override

   public void buildHardDisk() {

       computer.setHardDisk("Desktop Hard Disk");

   }

 

   @Override

   public void buildMotherboard() {

       computer.setMotherboard("Desktop Motherboard");

   }

 

   @Override

   public Computer getComputer() {

       return computer;

   }

}

 

package qb;

 

public class LaptopBuilder implements ComputerBuilder {

   private Computer computer;

 

   public LaptopBuilder() {

       computer = new Computer();

       computer.setType("Laptop");

   }

 

   @Override

   public void buildCPU() {

       computer.setCpu("Laptop CPU");

   }

 

   @Override

   public void buildMemory() {

       computer.setMemory("Laptop Memory");

   }

 

   @Override

   public void buildHardDisk() {

       computer.setHardDisk("Laptop Hard Disk");

   }

 

   @Override

   public void buildMotherboard() {

       computer.setMotherboard("Laptop Motherboard");

   }

 

   @Override

   public Computer getComputer() {

       return computer;

   }

}

 

package qb;

 

public class Main {

   public static void main(String[] args) {

       ComputerBuilder laptopBuilder = new LaptopBuilder();

       Computer laptop = ComputerAssemblyFactory.assembleComputer(laptopBuilder);

       System.out.println(laptop);

 

       ComputerBuilder desktopBuilder = new DesktopBuilder();

       Computer desktop = ComputerAssemblyFactory.assembleComputer(desktopBuilder);

       System.out.println(desktop);

   }

}

posted @ 2023-10-09 23:21  听着DJ读童话  阅读(7)  评论(0)    收藏  举报