建造者模式

一、简介

建造者模式相较于工厂模式,建造者模式需要关注构建对象的过程,而工厂模式则不需要。

二、例子

1、创建需要构建对象的抽象

public class Phone{
    String cpu;
    String mem;
    String disk;
}

2、创建建造者模式的接口

对构建对象的内容抽象

public interface AbstractPhoneBuilder {
    T customCpu(String cpu);
    T customMem(String mem);
    T customDisk(String disk);
    K builder();
}

3、创建构建具体对象

import lombok.ToString;

@ToString
public class HuaWeiPhone extends Phone implements AbstractPhoneBuilder{

  private HuaWeiPhone(){};

  public static HuaWeiPhone creat() {
      return new HuaWeiPhone();
  }

  @Override
  public HuaWeiPhone customCpu(String cpu) {
      this.cpu = cpu;
      return this;
  }

  @Override
  public HuaWeiPhone customMem(String mem) {
      this.mem = mem;
      return this;
  }

  @Override
  public HuaWeiPhone customDisk(String disk) {
      this.disk = disk;
      return this;
  }

  @Override
  public Phone builder() {
      //若想返回其他对象,这里可以转换
      return this;
  }

}

3、测试方法

    @Test
    public void buildTest(){
        Phone phone = HuaWeiPhone.creat().customCpu("麒麟9000").customMem("12G").customDisk("512G").builder();
        System.out.println(phone.toString());
    }

你可能感兴趣的:(建造者模式)