美文网首页
设计模式(九)建造者模式

设计模式(九)建造者模式

作者: Active_Loser | 来源:发表于2019-06-23 00:52 被阅读0次

总章目录,设计模式(一)基本介绍

一、简介

建造者模式(Builder Pattern) 又名生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。
建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。
UML类图:
1、抽象建造者(Builder):抽象接口或类,以规范产品对象的各个组成成分的建造。
2、具体建造者(ConcreteBuilder):1.实现抽象建造者Builder所声明的接口,给出一步一步地完成创建产品实例的操作。2.在建造过程完成后,提供产品的实例。
3、指导者(Director):担任这个角色的类调用具体建造者角色以创建产品对象。
4、产品(Product):产品便是建造中的复杂对象。

优点:

  1. 客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。
  2. 每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者, 用户使用不同的具体建造者即可得到不同的产品对象 。
  3. 可以更加精细地控制产品的创建过程 。将复杂产品的创建步骤分解在不同的方法中,使得创建过程更加清晰,也更方便使用程序来控制创建过程。
  4. 增加新的具体建造者无须修改原有类库的代码,指挥者类针对抽象建造者类编程,系统扩展方便,符合 “开闭原则”

缺点:

  1. 建造者模式所创建的产品一般具有较多的共同点,因此其使用范围受限。
  2. 产品的内部变化复杂,会导致系统变得很庞大。

二、实现

以下方式为简单的实现,通常会在create时赋值,赋值时仅保存变量

public class Summoner {
    private String shoes;
    private String arms;
    private String name;

    //省略 get  set

    public static class Builder {

        Summoner summoner;

        public void Builder(){
              summoner = new Summoner();
        }

        public Builder setArms(String arms) {
            summoner.setArms(arms);
            return this;
        }

        public Builder setShoes(String shoes) {
            summoner.setShoes(shoes);
            return this;
        }

        public Builder setName(String name) {
            summoner.setName(name);
            return this;
        }

        public Summoner build() {
            return summoner;
        }
    }
}
public class client {
    public static void main(String[] args) {
        Summoner summoner = new Summoner.Builder()
                .setName("武器大师")
                .setArms("三相之力")
                .setShoes("水银鞋");
        System.out.println(summoner.toString());
    }
}

相关文章

  • Retrofit

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

  • 设计模式(九)建造者模式

    总章目录,设计模式(一)基本介绍[https://www.jianshu.com/p/381482bfe2a4] ...

  • Android中涉及的模式

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

  • 设计模式之建造者模式

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

  • 设计模式 - 目录

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

  • 设计模式之建造者模式

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

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

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

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

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

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

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

  • 设计模式

    Java 设计模式情景分析 ——单例模式 Java 设计模式情景分析——建造者模式 Java 设计模式情景分析——...

网友评论

      本文标题:设计模式(九)建造者模式

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