美文网首页
Java23种设计模式之创建型模式「建造者模式」

Java23种设计模式之创建型模式「建造者模式」

作者: MrLimLee | 来源:发表于2020-07-28 16:59 被阅读0次

建造者模式

  • 将一个复杂对象的构建与表示分离开来,使用多个简单的对象一步一步构建成一个复杂的对象,它提供了一种创建对象的最佳方式
  • 用于构建多样化的对象,替代对象的构建函数,更加自由化

定义对象

/**
 * 产品对象
 *
 * @author Mr.lim
 */
public class ProductInfo {

    // 产品名称
    private String name;

    // 产品期限
    private String term;

    // 开发团队
    private String team;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTerm() {
        return term;
    }

    public void setTerm(String term) {
        this.term = term;
    }

    public String getTeam() {
        return team;
    }

    public void setTeam(String team) {
        this.team = team;
    }

    @Override
    public String toString() {
        return "ProductInfo{" +
                "name='" + name + '\'' +
                ", term='" + term + '\'' +
                ", team='" + team + '\'' +
                '}';
    }
}

定义功能接口

public interface ProductInfoBuilder {

    void builderProductInfoName();

    void builderProductInfoTerm();

    void builderProductInfoTeam();

    ProductInfo startProduct();
}

定义功能接口实现,这里可以根据需求,实现不能的功能

public class ProductInfoBuilderImpl implements ProductInfoBuilder {

    private ProductInfo productInfo;

    public ProductInfoBuilderImpl () {
        System.out.println("Builder");
        productInfo = new ProductInfo();
    }

    @Override
    public void builderProductInfoName() {
        System.out.println("设定项目名称相关逻辑");
        productInfo.setName("项目名称");
    }

    @Override
    public void builderProductInfoTerm() {
        System.out.println("设定项目周期相关逻辑");
        productInfo.setTerm("项目周期");
    }

    @Override
    public void builderProductInfoTeam() {
        System.out.println("设定项目开发团队相关逻辑");
        productInfo.setTeam("项目开发团队");
    }

    @Override
    public ProductInfo startProduct() {
        return productInfo;
    }
}

导演:管理建造出来的实例的依赖关系

/**
 *
 * @author Mr.lim
 */
public class Director {

    public ProductInfo startProductDirector(ProductInfoBuilder productInfoBuilder) {
        productInfoBuilder.builderProductInfoName();
        productInfoBuilder.builderProductInfoTerm();
        productInfoBuilder.builderProductInfoTeam();
        return productInfoBuilder.startProduct();
    }

    public static void main(String[] args) {
        Director director = new Director();
        ProductInfo productInfo = director.startProductDirector(new ProductInfoBuilderImpl());
        System.out.println(productInfo.toString());
    }
}

输出的结果:

Builder
设定项目名称相关逻辑
设定项目周期相关逻辑
设定项目开发团队相关逻辑
ProductInfo{name='项目名称', term='项目周期', team='项目开发团队'}

相关文章

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

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

  • 设计模式-构建者模式

    概念 建造者模式(英:Builder Pattern)是一种创建型设计模式,又名:生成器模式。GOF 给建造者模式...

  • spring 设计模式篇(前)

    设计模式俗称:套路 一、spring常见设计模式 (23种设计模式) 创建型:工厂方法模式、抽象工厂模式、建造者...

  • 设计模式之建造者模式

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

  • 23天学习23种设计模式——建造者模式

    是什么——什么是建造者模式 建造者模式(Builder Pattern),是一种对象创建型设计模式。它将一个复杂对...

  • 设计模式之建造者模式

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

  • JavaScript设计模式

    设计模式分类(23种设计模式) 创建型单例模式原型模式工厂模式抽象工厂模式建造者模式 结构型适配器模式装饰器模式代...

  • 创建型设计模式

    1,创建型设计模式有四种:1,单例模式。2,工厂模式。3,建造者模式。4,原型模式。 2,四种设计模式的应用场景:...

  • 设计模式

    设计模式分为 3 大类型共 23 种:创建型:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型:...

  • 简单工厂模式

    创建型设计模式: 简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、原型模式和建造者模式。 统共六种。 本此分享...

网友评论

      本文标题:Java23种设计模式之创建型模式「建造者模式」

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