美文网首页
建造者模式

建造者模式

作者: 汇源可乐 | 来源:发表于2019-11-05 21:53 被阅读0次

安卓常用的设计模式
建造者模式也被称为生成器模式,Builder模式,它是创建一个复杂对象的创建型模式,其将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示分离开来。

建造者模式

在DIY一台台式电脑的时候,CPU可以是Intel家的,也可以是Amd家的,可以是Intel的I5,I7,I8,i9,也可以是Amd家的锐龙5,锐龙7,锐龙9,显卡可以是英伟达家的,也可以是AMD家的,内存可以是8g的,也可以是16g的,也可以是32g的,硬盘可以是固态的,也可以是机械的,我们不需要知道这台电脑是怎么组装起来的,但是我们可以变化着各种零件型号来组成我们的电脑。类似的需求,我们就可以使用Builder模式来完成设计。

Builder模式{使用powerdesigner构建}

Builder:抽象的制造者,规范产品的制造,具体实现是由子类实现
ComputerBuilder:具体建造者,实现抽象Builder类定义的所有方法,并且返回一个组建好的对象
Director:导演类,负责安排已有模块的顺序,然后通知Builder开始建造


Computer

public class Computer {
   private String cpu;
   private String gpu;
   private String ram;
   private String disk;
  
   public String getCpu() {
      return cpu;
   }
   public void setCpu(String newCpu) {
      cpu = newCpu;
   }
   public String getGpu() {
      return gpu;
   }
   public void setGpu(String newGpu) {
      gpu = newGpu;
   }
   public String getRam() {
      return ram;
   }
   public void setRam(String newRam) {
      ram = newRam;
   }
   public String getDisk() {
      return disk;
   }
   public void setDisk(String newDisk) {
      disk = newDisk;
   }
}

Builder

public abstract class Builder {
   public abstract void buildCpu(String cpu);
   public abstract void buildGpu(String gpu);
   public abstract void buildRam(String ram);
   public abstract void buildDisk(String disk);
   public abstract Computer create();
}

具体的builder--ComputerBuilder

public class ComputerBuilder extends Builder {
   private Computer computer=new Computer();
   @Override
   public void buildCpu(String cpu) {
      computer.setCpu(cpu);
   }
   @Override
   public void buildGpu(String gpu) {
      computer.setCpu(gpu);
   }
   @Override
   public void buildRam(String ram) {
      computer.setCpu(ram);
   }
   @Override
   public void buildDisk(String disk) {
      computer.setCpu(disk);
   }
   @Override
   public Computer create() {
      return computer;
   }

}

导演类

public class Director {
   public Builder builder=null;
   public Director(Builder builder) {
     this.builder=builder;
   }
   
   public Computer createComputer(String cpu,String gpu,String ram,String disk) {
       builder.buildCpu(cpu);
       builder.buildGpu(gpu);
       builder.buildRam(ram);
       builder.buildDisk(disk);
      return builder.create();
   }
}

参考引用

相关文章

  • Builder Pattern in Java

    建造者模式:建造者模式定义建造者模式应用场景实现案例Jdk中的建造者模式建造者模式的优点建造者模式的缺点 建造者模...

  • 设计模式(4) 建造者模式

    什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与...

  • 建造者模式(部件构造)

    目录 建造者模式的理念 从 POJO 到建造者模式的思考 怎么来实现建造者模式 建造者模式在Android源码中的...

  • 【设计模式】之建造者Builder模式

    建造者模式 什么是建造者模式? 建造者模式属于创建型模式的一员,可以控制对象的实例化过程。建造者模式简化了复杂对象...

  • 建造者模式

    一、建造者模式介绍 二、建造者模式代码实例

  • 建造者模式

    建造者模式 首先,建造者模式的封装性很好。使用建造者模式可以有效的封装变化,在使用建造者模式的场景中,一般产品类和...

  • 建造者模式:深入理解建造者模式 ——组装复杂的实例

    目录: 一 建造者模式介绍 1.1 定义 1.2 为什么要用建造者模式(优点)? 1.3 哪些情况不要用建造者模式...

  • 设计模式之建造者模式

    设计模式之建造者模式 Intro 简介 建造者模式: 建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加...

  • 一、设计模式(构建模式)——03建造模式与原型模式

    建造者模式 建造型模式用于创建过程稳定,但配置多变的对象。 建造模式的实现要点: 在建造者模式中,指挥者是直接与客...

  • 创建型模式:建造者模式

    个人公众号原文:创建型模式:建造者模式 五大创建型模式之四:建造者模式。 简介 姓名 :建造者模式 英文名 :Bu...

网友评论

      本文标题:建造者模式

      本文链接:https://www.haomeiwen.com/subject/aibebctx.html