
回复
前言
具体介绍Builder设计模式之前,首先我们想一个问题。前段时间双十一室友组了台电脑,我们都知道电脑是一个非常复杂的组合体,里面有好多元件(CPU,硬盘,显示器,电源,显卡等等),不同的人对自己电脑的配置要求不同,但是得到的结果都是不同配置的一台电脑,那么这个过程怎么样封装使组件之间的耦合度降到最低,同时方便扩展。这时候就用到builder设计模式了。
一、Builder设计模式的使用场景
1、多个元件可以组装到一个对象里面,但是得到的结果又不相同时。
2、相同的方法,不同的执行顺序,但是产生的执行结果或作用不同时。
3、初始化一个非常复杂的对象,但是参数特别的而且还都有默认值。
二、Builder设计模式的定义
将一个复杂的构建对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
三、Builder设计模式的UML图
四、Builder设计模式的简单实现(以组装电脑为例)
上面时电脑的抽象类,除此外我们还需要有:
使用时只需要传入不同参数即可:
以上的输出结果如下:
五、Builder模式在Android中的使用
Builder设计模式在Android中的使用也是比较常见的,其中最为典型的该属于AlterDialog,其次网络请求框架,Okhttp和Retrofit也是使用Builder设计模式。
作者:紫雾凌寒
来源:CSDN