Builder设计模式
来源:互联网 发布:学生管理系统报告c语言 编辑:程序博客网 时间:2024/06/05 18:34
应用场景
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() + "的杯子");// 输出:我是一个圆柱形杯身圆形杯盖没有花纹的杯子
0 0
- 设计模式:Builder模式
- 设计模式 -- BUILDER模式
- 【设计模式】Builder模式
- 设计模式-Builder模式
- 设计模式Builder模式
- 设计模式-Builder模式
- 设计模式 - Builder模式
- 设计模式 - Builder模式
- 设计模式---Builder模式
- 设计模式--Builder模式
- 设计模式---Builder模式
- 设计模式--Builder模式
- 设计模式---Builder模式
- 设计模式---Builder模式
- 设计模式-builder模式
- 【设计模式】Builder模式
- 设计模式----Builder模式
- 设计模式-Builder模式
- JAVA_HOME配置
- RBAC权限管理
- SEAndroid kernel层源码解析1——从hook点到策略点
- 从程序员到项目经理(17):你不是一个人在战斗--思维一换天地宽
- struts2标签库----控制标签详解
- Builder设计模式
- ubuntu14.04安装最新版本的wine
- Opevswitch总体架构
- 从此编写 Bash 脚本不再难
- MapReuce 算法设计--Combiner 和 In-Mapper Combing
- 从程序员到项目经理(18):不要试图和下属做朋友
- iOS 项目中包含多个 FFMPEG 方法冲突的通用解决办法。
- Java入门学习- 理解List和HashMap和HashTable的用法和区别
- Nginx location模块整理