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

设计模式之建造者模式

作者: tanoak | 来源:发表于2018-09-11 21:10 被阅读7次
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(ps:简单理解隐藏内部的建造过程和细节,方便创建复杂的对象)
  • UML


  • code

    /**
     * @Desc 水果接口
     */
    public interface FruitBuilder {
        /**
         * 创建水果
         */
        void createFruit();
    
        /**
         * 水果颜色
         */
        void buildColor() ;
    
        /**
         * 水果形状
         */
        void buildShape() ;
    
        /**
         * 创建水果
         * @return
         */
        Fruit getFruit();
    }
    
    @Data
    public class Fruit {
        
        private String name;
    
        private String color;
        
        private String shape;
    
        public Fruit(String name) {
            this.name = name;
        }
    
        public Fruit() {
        }
    }
    
public class BananaBuilder implements FruitBuilder {

    private Fruit fruit;

    @Override
    public void createFruit() {
        this.fruit = new Fruit("香蕉") ;
    }

    @Override
    public void buildColor() {
        this.fruit.setColor("红色");
    }

    @Override
    public void buildShape() {
        this.fruit.setShape("圆形");
    }

    @Override
    public Fruit getFruit() {
        return fruit;
    }
}
public class AppleBuilder implements FruitBuilder {

    private Fruit fruit;

    @Override
    public void createFruit( ) {
        this.fruit= new Fruit("苹果") ;
    }

    @Override
    public void buildColor() {
        this.fruit.setColor("蓝色");
    }

    @Override
    public void buildShape() {
        this.fruit.setShape("椭圆形");
    }

    @Override
    public Fruit getFruit() {
        return fruit;
    }
}
public class Soul {
    
    public Fruit createFruit(FruitBuilder fruitBuilder){
        fruitBuilder.createFruit();
        fruitBuilder.buildColor();
        fruitBuilder.buildShape();
        return fruitBuilder.getFruit();
    }

}
public class Main {

  public static void main(String[] args) {
      Soul soul = new Soul();
      //苹果
      System.out.println("生产了:" + soul.createFruit(new AppleBuilder()));
      System.out.println("----------------------------------------");

      //香蕉
      System.out.println("生产了:" + soul.createFruit(new BananaBuilder()));
  }
}

建造者模式与工厂模式类似,但是建造者模式能应对更加复杂的创建过程。

相关文章

  • Android中涉及的模式

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

  • 设计模式之建造者模式

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

  • 设计模式之建造者模式

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

  • Javaの设计模式之建造者模式

    推荐阅读:《设计模式之禅》 今早早起,刚刚出炉,哈哈 BuilderPattern 设计模式之建造者模式 Demo...

  • 设计模式之建造者模式

    设计模式之建造者模式 建造者模式 属于 创建型模式,提供一种创建对象的最佳方式。 创建型模式 指不是直接使用ne...

  • Retrofit

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

  • 设计模式 - 目录

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

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

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

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

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

  • 建造者设计模式-Builder design pattern

    建造者设计模式是创建型设计模式的一种。创建型设计模式处理对象创建的问题。 建造者设计模式,用来构建需要经过若干个建...

网友评论

      本文标题:设计模式之建造者模式

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

      热点阅读