设计模式之建造者+原型模式

简介

原型设计模式

略。。。(简单)

建造者模式

  • 使用多个简单的对象一步一步构建成一个复杂的对象

  • 允许用户通过指定复杂对象的类型和内容就可以构建,不需要知道内部的具体构建细节

  • 场景

    • kfc创建套餐,一般包含汉堡,烤翅,饮料和果汁、可乐等,不同套餐有不同组合
  • 核心组成:

  • Product:产品角色

public class Computer{
private String CPU;
private String Power;
// getter setter toString...
}
  • Builder :抽象创建者,定义多个通用方法和构建方法
public interface Builder{
  void buildCPU();
  void buildPower();
  Computer createComputer();
}
  • ConcretezBuilder:具体建造者,可以有多个
public  class higherComputer implements Builder{
  private Computer computer = new Computer();
  @Override
  void buildCPU(){
    computer.setCPU("创建higher cpu");
  }

  @Override
  void buildPower(){
    computer.setPower("创建higher power");
  }
  @Override
  Computer createComputer(){
    return computer;
  }
}

public  class LowComputer implements Builder{
  private Computer computer = new Computer();
  @Override
  void buildCPU(){
    computer.setCPU("创建lower cpu");
  }

  @Override
  void buildPower(){
    computer.setPower("创建lower power");
  }

  @Override
  Computer createComputer(){
    return computer;
  }
}
  • Director:指挥者,控制整个组合过程,将需求交给建造者,由建造者去创建对象

public class Director{
  public Computer createComputer(Bulider builder){
    builder.buildCPU();
    builder.buildPower();
    return builder.createComputer();
  }
}

  • 测试
public class test{
  public static void main(String[] args){
    Director director = new Director();
    System.out.println(
    diretor.createComputer(new LowComputer()).toString());

    System.out.println(
    diretor.createComputer(new higherComputer()).toString());
  }

}
  • jdk使用到的有StringBuilder等,基本上有Builder结尾的都输入建造者模式

评论

渣男 : 456
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×