Java 设计模式 -- 建造者模式
建造者模式
建造者模式就是一步一步的创建一个复杂的对象,而且允许用户指定复杂对象的类型和内容。
Builder 类是一个抽象类,用于定义一些创建子部件的方法,Builder类中应该还有一个 getResult() 方法,用于将创建好的部件组装成一个产品返回。
Director 类又称为指挥者,用于安排复杂对象的建造次序,通过construct() 方法,指导Builder类完成组装。
通过一个例子来更好的理解建造者模式,比如说现在的手机都支持更换主题,所有的主题建造过程都是类似的,比如说更换图标,背景,提示音,那么这个时候就可以通过建造者模式来完成这一过程。
先来设计一下Product和Builder类
public class Product {private String mBackground;private String mIcon;private String mSounds;public String getBackground() {return mBackground;}public void setBackground(String background) {mBackground = background;}public String getIcon() {return mIcon;}public void setIcon(String icon) {mIcon = icon;}public String getSounds() {return mSounds;}public void setSounds(String sounds) {mSounds = sounds;} }public abstract class Builder {private Product mProduct = new Product();public Product getResult(){return mProduct;}public abstract void buildBackground();public abstract void buildIcon();public abstract void buildSounds();
}
可见,不论什么样的主题,以上代码都是通用的,对于不同的主题,只需要在ConcreteBuilder中进行设置就可以了。
public class ConcreteBuilder extends Builder{public void buildBackground(){mProduct.setBackground("Black");}public void buildIcon(){mProduct.setIcon("MyIcon");}public void buildSounds(){mProduct.setSounds("MySounds");}
}
既然产品生产过程已经构建出来了,那么就到了Director 类发挥作用的时候了,现在就由Director 来指挥各个部件的创造,并且将组装好的产品返回给客户端。
public class Director {public Product construct(Builder builder){builder.buildBackground();builder.buildIcon();builder.buildSounds();return builder.getResult();}}
可见Director 类中只有一个简单的方法,有的时候当产品的部件不是很多的时候,完全可以将该方法放到Builder类中,从而省略Director 类。
已经看出,建造者模式和抽象工厂模式很类似。其实,抽象工厂模式更侧重于生产 “部件” , 而建造者模式侧重于将各个 部件组装成一个产品。
作者:ghwaphon
链接:https://www.jianshu.com/p/7d16da4e61b8
來源:简书
Java 设计模式 -- 建造者模式相关推荐
- Java 设计模式——建造者模式(Builder Pattern)
前言 一.简介 二.实现方式 三.常见第一种方式 (1)一般有以下几个角色 (2)举个例子 (3)具体步骤 (4)具体代码 三.第二种方式 (1)主要有三个角色:抽象建造者.具体建造者.产品 (2) ...
- 我的Java设计模式-建造者模式
在未上大学之前,一直有个梦想"I have a dream!",就是能成为一位汽车工程师,一直幻想着开着自己设计的汽车飞奔在公路上,迷倒了万千少女.咳咳~~虽然现在没实现我的dre ...
- Java设计模式 建造者模式
前言 建造者模式(Builder Pattern)又称为创建者模式,建造者模式使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在该模 ...
- 设计建造者模式java代码,Java设计模式-建造者模式
定义 Separate the construction of a complex object from its representation so that the sameconstructio ...
- java设计模式-建造者模式
概念:使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. ...
- Java设计模式-建造者模式 理论代码相结合
继工厂模式后的建造者模式,也是java中常常能够见到的模式一种,应用场景也比较广,比较好用. 大家想了解的话,一起来看一看啦.
- JAVA设计模式--建造者模式
目录 前言 一.什么是建造者模式 二.建造者模式的结构 三.建造者模式应用场景 参考文章 前言 在听完厉风行老师<设计模式系列课程>中的建造者模式一节后顿时感觉有点头大,感觉它有点像工厂方 ...
- JAVA设计模式 - 建造者模式
建造者模式 , 又称为生成器模式 . 是创建型模式之一 . 与工厂方法模式和抽象工厂模式不同 , 这两种模式的目的是为了实现多态性 , 而建造者模式的目的则是为了将对象的构建与展示分离 . ...
- 【面试高频】Java设计模式-建造者模式
⭐️写在前面 这里是温文艾尔的学习之路
最新文章
- cni k8s 插件安装_第一次,如此清晰脱俗的直解K8S网络
- Linux服务器上挂载window本地iso镜像文件的方法。
- float布局设置同一行行高一样_布局思想:大事化小、先行后列、见缝插针
- 列表和字典之间的相互转换-Python3
- 常州大学 计算机与人工智能学院,第一届计算机视觉青年学者论坛(CVYSF)在常州大学举办...
- HTML5 音频 audio
- web页面如何实现点击按钮进行手机拨号?
- 从PCA和SVD的关系拾遗
- 【锂电池健康状态预测】基于matlab BP神经网络锂电池健康状态预测【含Matlab源码 688期】
- 今天终于找到了一款windows下的Zcash钱包(ZEC钱包),推荐给大家
- Java算法面试题(008) 字符串反转
- Java同步三种实现方式
- python做语音识别
- C语言逻辑运算符和||,一篇文章带你读懂逻辑表达式!
- 计算机控制系统机器人,机器人的控制系统
- xp如何在电脑上设置无线网络连接服务器,xp电脑怎么设置wifi
- presenting view controller
- 八.国民技术MCU开发之 XFMC模块之PSRAM
- 北洋 BTP-R150 打印机驱动
- SCAP标准协议和威胁情报关键词术语