美文网首页
Android设计模式-建造者模式

Android设计模式-建造者模式

作者: 星宇V | 来源:发表于2019-10-17 17:02 被阅读0次

    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图

    建造者模式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设计模式-建造者模式

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