美文网首页开发模式
设计模式——建造模式

设计模式——建造模式

作者: 蜗牛的赛跑 | 来源:发表于2016-08-24 23:17 被阅读20次

定义:将一个复杂对象的构建与它的表示分离,使得同样地构建过程可以创建不同的表示

使用场景示例
我们有一个产品,它包含了很多属性

    public class Product{
        private String name;
        private String num;
        private String price;
        private String weight;
    }

在构造的时候通常我们使用构造函数进行初始化,但是面对许多需要初始化的属性并且有时并不需要初始化所有的属性.�构造函数就要重载,并且带着长长的参数,而建造模式就是把构建分离出来
下面是代码

public class Product {
    private String name;
    private String num;
    private String price;
    private String weight;

    public Product(Builder builder) {
        this.name = builder.name;
        this.num = builder.num;
        this.price = builder.price;
        this.weight = builder.weight;
    }

    public static class Builder {
        private String name;
        private String num;
        private String price;
        private String weight;

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

        public Builder setNum(String num) {
            this.num = num;
            return this;
        }

        public Builder setPrice(String price) {
            this.price = price;
            return this;
        }

        public Builder setWeight(String weight) {
            this.weight = weight;
            return this;
        }

        public Product create() {
            return new Product(this);
        }

    }

}
Product.Builder builder = new Product.Builder();
Product product = builder.setName("macbook").setNum("10").create();

这种模式随处可见,典型的AlertDialog

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        LayoutInflater inflater = getActivity().getLayoutInflater();
        View view = inflater.inflate(R.xxx, null);
        builder.setView(view).setNegativeButton(DISMISS, null);
        return builder.create();
    }

还有URI

Uri uri = new Uri.Builder()
    .scheme("xxx")
    .path(String.valueOf(R.drawable.xxx))
    .build();

相关文章

  • 设计模式 - 目录

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

  • Retrofit

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

  • 设计模式

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

  • Android中涉及的模式

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

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

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

  • 设计模式之建造者模式

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

  • spring 设计模式篇(前)

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

  • 设计模式之建造者模式

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

  • iOS模式设计之--创建型:4、建造模式(Builder)

    iOS模式设计之-4、建造模式(Builder)

  • 设计模式-面相对象7个原则

    设计模式-面相对象7个原则设计模式-创造性模式 单例 原型 工厂 建造者设计模式-设计模式 - 结构性模式 代理 ...

网友评论

    本文标题:设计模式——建造模式

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