Builder设计模式

xiaoxiao2021-02-28  138

应用场景

Builder设计模式有很多地方都有应用,在Android中Dialog就是采用的Builder设计模式,那么在我们的开发中主要的应用场景有哪些呢?

参数很多参数可选 有些参数不是必须的需要有良好的代码阅读性

实现方式

建造者模式常采用内部类的方式编写,这有利于实现链式编程,可阅读性强。下面举一个简单的例子来说明。 我们需要生产一个水杯,水杯必须有的是杯身,不必须有的是杯盖,花纹。就这三个参数吧,表达个意思就好。

public class Bottle{ private String body; private String cover; private String figure; //构造方法私有化就说明不能直接创建Bottle的实例,必须由建造者来实例化 private Bottle(BottleBuilder builder){ this.body = builder.body; this.cover= builder.cover; this.figure= builder.figure; } public String getBody(){ return body; } public String getCover(){ return cover; } public String getFigure(){ return figure; } public static class BottleBuilder{ private String body; private String cover; private String figure; public BottleBuilder(String body){ this.body = body; //这是杯子必须包含的属性 } public BottleBuilder cover(String cover){ this.cover = cover; return this; } public BottleBuilder figure(String figure){ this.figure = figure; return this; } public Bottle build(){ return new Bottle(this); } } }

至此就完成了一个使用建造者模式创建Bottle。 使用:

Bottle bottle = new Bottle.BottleBuilder("圆柱形杯身") .cover("圆形杯盖") .figure("没有花纹") .build(); system.out.println("我是一个" + bottle.getBody() + bottle.getCover() + bottle.getFigure() + "的杯子"); // 输出:我是一个圆柱形杯身圆形杯盖没有花纹的杯子
转载请注明原文地址: https://www.6miu.com/read-33313.html

最新回复(0)