android-学渣系列- 设计模式学习 - 建造者模式

android-学渣系列- 设计模式学习 - 建造者模式_第1张图片
1111.jpg

不知道大家有没有我这种体会,建造者模式,builder,生成器模式,这三个好像啊,哈哈, 好了 开始我们今天的学习,

builder 讲一个复杂对象的构建与他的表示分离,是的同样的构建过程可以创建不同的表示

android-学渣系列- 设计模式学习 - 建造者模式_第2张图片
image.png

在写程序之前 大家 思考一下这个和工厂有什么不同的 builder和下面的继承这个builder和工厂的哪一步一样?

android-学渣系列- 设计模式学习 - 建造者模式_第3张图片
image.png

和这一步一样 ,那么区别呢?

ifactory抽象工厂和具体工厂模式替换成了Director,

Director和builder是聚合关系,用Director来达到创建对象的逻辑。 而不同的对象 是通过继承builder

建造模式 他创建比较复杂的对象 而且特点是 对象的创建和构造过程是分离的,每一步都是有步骤,不像是工厂 他的创建和构造是同步的。通过ifactory就完成了,


public class work {
}



package com.dictory;

     public abstract class  httpworkbuilder {
        public  abstract  void setlaijie();
        public  abstract void  setshuju();
        public  abstract  work getwork();

}


package com.dictory;

public class jhttpwork extends  httpworkbuilder {


    private  work work = new work();
    @Override
    public void setlaijie() {


    }

    @Override
    public void setshuju() {

    }

    @Override
    public work getwork() {
        return work;
    }
}


package com.dictory;

public class director {
    public  void  Construct(httpworkbuilder httpwork){
        httpwork.setlaijie();
        httpwork.setshuju();
    }


}


  /**
         * builderm模式
         * 思考一下 和上面的有什么关系
         * work的创建和构建是分离的
         * 构建是通过director
         *

         *
         */

        director  director =  new director();
        httpworkbuilder httpworkbuilder =  new jhttpwork();
        director.Construct(httpworkbuilder); 
上面是构建对象  下面是创建对象(通过build构建对象)
        work work = httpworkbuilder.getwork();


建造者模式 抽象指导者和builde是聚合关系,所以在dirctor中会有builder(构造方法加上成员变量的)

你可能感兴趣的:(android-学渣系列- 设计模式学习 - 建造者模式)