Android设计模式-建造者模式

UML关系简单介绍
UML简单使用的介绍
创建型设计模式
Android设计模式-单例模式
Android设计模式-工厂模式
Android设计模式-抽象工厂模式
Android设计模式-建造者模式
Android设计模式-原型模式
结构型设计模式
Android设计模式-代理模式
Android设计模式-装饰模式
Android设计模式-适配器模式
Android设计模式-组合模式
Android设计模式-门面模式
Android设计模式-桥接模式
Android设计模式-享元模式
行为型设计模式
Android设计模式-策略模式
Android设计模式-命令模式
Android设计模式-责任链模式
Android设计模式-模版方法模式
Android设计模式-迭代器模式
Android设计模式-观察者模式
Android设计模式-备忘录模式
Android设计模式-中介者模式
Android设计模式-访问者模式
Android设计模式-状态模式
Android设计模式-解释器模式

1.定义

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

2.建造者模式UML图

Android设计模式-建造者模式_第1张图片
建造者模式UML图

角色介绍

  • Director 导演类,告诉Builder开始创建对象。导演类起到了封装的作用,避免高层模块深入到建造者内部的实现。在建造者模式比较庞大时,导演类可以有多个。
  • Builder 抽象建造者类 规范产品的组建,一般由子类实现
  • ConcreteBuilder 具体建造者类,实现抽象类定义的所有方法,并返回一个组建好的对象
  • Product 产品类,具体要生产的对象

3.实现

3.1产品类

public class Product {
    public void m1(){

    }
}

3.2 抽象建造者

public abstract class Builder {
    public abstract void setpart();
    public abstract Product buildProduct();
}

3.3 具体建造者

public class ConcrereBuilder extends Builder {
    private Product product=new Product();
    @Override
    public void setpart() {
        /**
         * 产品类内的处理逻辑
         */
    }

    @Override
    public Product buildProduct() {
        return product;
    }
}

3.4 导演类

public class Director {
    private Builder builder=new ConcrereBuilder();
    //构建不同的产品
    public Product getProduct(){
        builder.setpart();
        /**
         * 设置不同的零件,组建不同的产品
         */
        return builder.buildProduct();
    }
}

4.总结

4.1优点

  • 封装性,使用建造者模式可以使客户端不必知道产品内部的具体组成细节,不需要关心其内部是怎么实现的
  • 容易扩展,建造者独立,对扩展是非常有利对
  • 便于控制细节风险,由于具体的建造者是独立的,因此可以设置不同的建造过程而不对其他模块产生影响。

4.2使用场景

  • 相同的方法,不同的执行过程,产生不同的结果,可以使用建造者模式
  • 多个属性都可以装配到一个对象中,但是产生的结果又不相同,则可以使用建造者模式
  • 产品类非常复杂,或者产品类中调用顺序不同产生不同的效能,这时候也可以使用建造者模式
  • 在对象的创建过程中会使用到一些其他对象,这些对象在产品对象的创建过程中不易得到时,也可以使用建造者模式封装该对象的创建过程。

注意事项

建造者模式关注的是零件类型和装配工艺(顺序),这是他与工厂模式最大不同的地方,虽然同为创建型模式,但是他们的住重点是不同的。

你可能感兴趣的:(Android设计模式-建造者模式)