美文网首页
设计模式四(建造者模式)

设计模式四(建造者模式)

作者: Android师哥 | 来源:发表于2020-04-20 18:44 被阅读0次
NightRain.png

定义

将一个复杂对象的构建与它的表示分离,同样的构建过程可以创建不同的表示

使用场景

  • 复杂的产品类
  • 多样性的功能

示例

Director(产品类)

public class PhoneProduct {
    private String system;
    private String cpu;
    private String ram;
    private String rom;

    public void setSystem(String system) {
        this.system = system;
    }

    public void setCpu(String cpu) {
        this.cpu = cpu;
    }

    public void setRam(String ram) {
        this.ram = ram;
    }

    public void setRom(String rom) {
        this.rom = rom;
    }

    @NonNull
    @Override
    public String toString() {
        return "\n系统:" + system + "\nCUP:" + cpu + "\n运存:" + ram + "\n内部储存:" + rom;
    }
}

IBuilder(抽象建造者)

public interface IBuilderPhone {
    void buildSystem(String system);

    void buildCup(String cup);

    void buildRam(String ram);

    void buildRom(String rom);

    PhoneProduct build();
}

Builder(具体建造者)

public class BuilderPhone implements IBuilderPhone {
    private PhoneProduct mPhoneProduct = new PhoneProduct();


    @Override
    public void buildSystem(String system) {
        mPhoneProduct.setSystem(system);
    }

    @Override
    public void buildCup(String cpu) {
        mPhoneProduct.setCpu(cpu);
    }

    @Override
    public void buildRam(String ram) {
        mPhoneProduct.setRam(ram);
    }

    @Override
    public void buildRom(String rom) {
        mPhoneProduct.setRom(rom);
    }

    @Override
    public PhoneProduct build() {
        return mPhoneProduct;
    }
}

Director(导演类)

public class DirectorPhone {
    private IBuilderPhone mIBuilderPhone;

    public DirectorPhone(IBuilderPhone mIBuilderPhone) {
        this.mIBuilderPhone = mIBuilderPhone;
    }

    public PhoneProduct createPhone(String system, String cpu, String ram, String rom) {
        mIBuilderPhone.buildSystem(system);
        mIBuilderPhone.buildCup(cpu);
        mIBuilderPhone.buildRam(ram);
        mIBuilderPhone.buildRom(rom);
        return mIBuilderPhone.build();
    }
}

使用

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        PhoneProduct mPhoneProduct = new DirectorPhone(new BuilderPhone()).createPhone("EMUI", "麒麟", "4G", "16G");
        Log.i(TAG, "onCreate: "+mPhoneProduct.toString());
    }
Result.png

相关文章

  • Java 十一种设计模式深入理解

    目录一、工厂设计模式二、抽象工厂模式三、单例设计模式四、建造者(Builder)模式五、原型模式六、适配器设计模式...

  • Retrofit

    Retrofit设计模式 动态代理,装饰模式,建造者模式,抽象工厂模式,适配器模式 建造者模式创建Retrofit...

  • 设计模式(十四)中介者模式

    相关文章 设计模式(一)设计六大原则设计模式(二)单例模式的七种写法设计模式(三)建造者模式设计模式(四)简单工厂...

  • Android中涉及的模式

    我的Java设计模式-建造者模式 我的Java设计模式-观察者模式 重学设计模式之单例模式

  • 设计模式之建造者模式

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

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 设计模式之建造者模式

    设计模式之建造者模式 1. 模式定义 建造者模式又可以成为生成器模式,它属于对象创建型模式。建造者模式将一个复杂对...

  • java设计模式--建造者模式

    java设计模式--建造者模式 建造者模式定义 建造者模式:是将复杂对象的构建与表示进行分离,使同样的构建过程会有...

  • 【Java设计模式】--建造者模式

    建造者模式(Bulider模式) 一、什么是建造者模式 建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示...

  • 创建型设计模式

    1,创建型设计模式有四种:1,单例模式。2,工厂模式。3,建造者模式。4,原型模式。 2,四种设计模式的应用场景:...

网友评论

      本文标题:设计模式四(建造者模式)

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