【读书笔记】Android源码设计模式解析与实战(三)——建造者模式(Builder)
来源:互联网 发布:贝尔野外求生刀数据 编辑:程序博客网 时间:2024/05/17 04:16
【读书笔记】Android源码设计模式解析与实战(一)
【读书笔记】Android源码设计模式解析与实战(二)——单例模式
【读书笔记】Android源码设计模式解析与实战(三)——建造者模式(Builder)
【读书笔记】Android源码设计模式解析与实战(四)——原型模式
定义
将一个复杂对象的构建与它的表示分离,是的同样的构建过程可以创建不同的表示。
使用场景
(1) 相同的方法,不同的执行顺序,产生不同的时间结果时
(2) 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不同时
(3) 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个时候使用建造者模式非常合适
(4) 当初始化一个对象特别复杂,如参数多,且很多参数都具有默认值时
优缺点
优点:良好的封装性,使用建造者模式可以使客户端不必知道产品内部组成的细节;建造者独立,容易扩展
缺点:会产生多余的Builder对象以及Director对象,消耗内存
简单实现
public class People { private int age; private int sex; private String name; private String email; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public static class Builder{ private People people = new People(); public Builder buildName(String name){ people.setName(name); return this; } public Builder buildAge(int age){ people.setAge(age); return this; } public Builder buildSex(int sex){ people.setSex(sex); return this; } public Builder buildEmail(String email){ people.setEmail(email); return this; } public People create(){ return people; } }}
阅读全文
0 0
- 【读书笔记】Android源码设计模式解析与实战(三)——建造者模式(Builder)
- 《Android源码设计模式解析与实战》读书笔记(三)——建造者模式
- 《Android源码设计模式解析与实战》读书笔记(三)
- 《Android源码设计模式解析与实战》读书笔记(十七)——中介者模式
- 《Android源码设计模式解析与实战》读书笔记(二十一)——装饰者模式
- 设计模式读书笔记(三) Builder(建造者)模式
- 《Android源码设计模式解析与实战》读书笔记(二)——单例模式
- 《Android源码设计模式解析与实战》读书笔记(四)——原型模式
- 《Android源码设计模式解析与实战》读书笔记(五)——工厂方法模式
- 《Android源码设计模式解析与实战》读书笔记(七)——策略模式
- 《Android源码设计模式解析与实战》读书笔记(八)——状态模式
- 《Android源码设计模式解析与实战》读书笔记(九)——责任链模式
- 《Android源码设计模式解析与实战》读书笔记(十)——解释器模式
- 《Android源码设计模式解析与实战》读书笔记(十一)——命令模式
- 《Android源码设计模式解析与实战》读书笔记(六)——抽象工厂模式
- 《Android源码设计模式解析与实战》读书笔记(十二)——观察者模式
- 《Android源码设计模式解析与实战》读书笔记(十三)——备忘录模式
- 《Android源码设计模式解析与实战》读书笔记(十四)——迭代器模式
- TWS API 97.3 python3.6 出现 decode错误
- springmvc源码分析系列-请求处理流程
- day4_字符串的两头堵模型
- 重新运行explorer.exe
- obs之lame编码
- 【读书笔记】Android源码设计模式解析与实战(三)——建造者模式(Builder)
- git分支(branch)操作相关命令
- 文件下载中文文件名不显示
- Linux下查看文件内容的命令
- node.js——麻将算法(四)胡牌算法的一些优化处理方案(无赖子版)
- Axis2开发WebService客户端 的3种方式
- 内存优化
- 利用 Global mapper制作地图瓦片
- Add to List 658. Find K Closest Elements