设计模式之Builder模式学习
来源:互联网 发布:网络加盟店排行榜 编辑:程序博客网 时间:2024/04/29 02:37
- Builder模式
- 开始撸代码
Builder模式
有些对象创建起来很复杂, 这个时候我们就可以采用Builder模式, 可以使创建者在不需要了解具体创建细节的情况下也可以精细控制对象的构造
开始撸代码
我们来模仿一个组装电脑的过程, 简化为组建主机, 设置操作系统, 设置显示器三个部分
1. 先来写一个计算机抽象类
public abstract class Computer { protected String mBoard; protected String mDisplay; protected String mOs; public String getBoard() { return mBoard; } public void setBoard(String board) { mBoard = board; } public String getDisplay() { return mDisplay; } public void setDisplay(String display) { mDisplay = display; } public String getOs() { return mOs; } public void setOs(String os) { mOs = os; }}
再来写一个Computer实现类
public class Macbook extends Computer { protected Macbook() { }}
再来写一个抽象Builder类
public abstract class Builder { public abstract void buildBoard(String board); public abstract void buildDisplay(String display); public abstract void buildOs(); public abstract Computer create();}
再来写一个Builder实现类
public class MacbookBuilder extends Builder { private Computer mComputer = new Macbook(); @Override public MacbookBuilder buildBoard(String board) { mComputer.setBoard(board); return this; } @Override public MacbookBuilder buildDisplay(String display) { mComputer.setDisplay(display); return this; } @Override public MacbookBuilder buildOs() { mComputer.setOs("ios"); return this; } @Override public Computer create() { return mComputer; }}
好了 接下来就可以使用了
Builder builder = new MacbookBuilder(); builder.buildBoard("主板"); builder.buildDisplay("显示器"); builder.buildOs(); builder.create();
或者链式调用
Computer computer = new MacbookBuilder() .buildBoard("主板") .buildDisplay("显示器") .buildOs() .create();
安卓系统中Builder模式随处可见, 我们经常使用的AlertDialg就是通过AlertDialog.Builder这个内部类来构建, 还有OKhttp等
0 0
- Android设计模式学习之Builder模式
- 设计模式之Builder模式学习
- 设计模式学习之Builder模式
- Android 设计模式学习之 Builder 模式
- 设计模式学习--Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- Android WebView默认GONE出现的问题记录
- 单例模式的七种写法
- Springboot启动源码详解
- 插入排序---学习笔记
- 第11节-贝叶斯正则化与ML应用建议
- 设计模式之Builder模式学习
- 删除指定的字符串方法
- 判断App整体处于前台还是后台
- 响应式布局
- 常见Android Native崩溃及错误原因
- Python学习笔记(1)自制点书系统
- Android5.x新特性之 Toolbar和Theme的使用
- Android自定义相机实现N连拍
- 2017.3.15做题记录