美文网首页
建造者模式

建造者模式

作者: Stephenwish | 来源:发表于2020-08-06 13:18 被阅读0次
    建造者模式有点类似工厂模式,创建对象,但是建造模式侧重点是流程
    第一步,创建一个普通对象
    //省略get,set方法
    public class Completepart {
        private String food;
        private String drink;
    }
    

    #######第二步,为这个对象创建建造器,方便对外提供,类似工厂

    public abstract class Builder {
        Completepart completepart = new Completepart();
    
    //返回builder 方便链式编程
        public abstract Builder buildfood();
    
        public abstract Builder builddrink();
    
    
        public Completepart buildPart() {
            return completepart;
        }
    

    #######第三步,实例化一两个具体的建造器

    public class APart extends  Builder{
        @Override
        public Builder buildfood() {
            completepart.setFood("Afood 作为part1 的实现");
            System.err.println("Afood 作为part1 的实现");
            return this;
        }
    
        @Override
        public Builder builddrink() {
            completepart.setDrink("Adrink 作为part1 的实现");
            System.err.println("Adrink 作为part1 的实现");
            return this;
        }
    }
    
    
    public class BPart extends Builder{
        @Override
        public Builder buildfood() {
            completepart.setFood("Bfood 作为part2 的实现");
            System.err.println("Bfood 作为part2 的实现");
            return this;
        }
    
        @Override
        public Builder builddrink() {
            completepart.setDrink("Bdrink 作为part2 的实现");
            System.err.println("Bdrink 作为part2 的实现");
            return  this;
        }
    }
    
    
    
    创建客户端检验
    public class Client {
        public static void main(String[] args) {
            Builder builder = new APart();
            Completepart completepart = builder.builddrink().buildfood().buildPart();
            System.err.println(completepart);
    
        }
    }
    

    相关文章

      网友评论

          本文标题:建造者模式

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