Hello,又是拖了几天更,实在是忙的要死,有时候忙累了,真的就是倒头睡的那种,刚好今天闲下来了。今天来更新一篇建造者模式。

其实建造者模式,我们已经在上一节已经有了解过了。只不过是上一节没有提到这样的一个概念。可能大家都觉得抽象工厂模式一般都是那样用的,其实里面已经包含了我们这一节的内容。

且听我细细道来。

简介

建造者模式 又称作Builder 模式,它将一个复杂对象 拆分成多个小组件,将一个个小组件组装成复杂的对象。这就是建造者模式

举个例子

比如我们的电脑:它是一个复杂对象,我们可以将它拆封成:

  • CPU对象
  • 主板对象
  • 内存对象
  • 硬盘对象。。。。

在使用建造者模式组装 的时候,就可以模拟实际我们在DIY 主机的时候,将一个个零件组装成一台可以开机的计算机

代码示例

建造模式常常与抽象工厂一起使用,建造者类一般通过工厂的抽象方法实例化指定的工厂,然后通过工厂生产对象

代码我们还是参考上一节的内容,只不过,我改了一个类名,方便大家理解。

//抽象工厂建造者
public class AbstractFactoryBuilder { public PhoneProduct createPhone(String name) { AbstractFactory factory = null; if ("xiaomi" == name) {
factory = new XiaoMiFactory();
} else {
factory = new HuaweiFactory();
}
PhoneFactory phoneFactory = factory.phoneFactory(); return phoneFactory.show();
}
}
  1. 建造者只是指挥对象的创建、调用工厂组装生产对象、不参与产品 是如何构造出来的这个过程。
  2. 建造者与实际产品是解耦的、即使建造者不存在、工厂仍然可以创建产品

简单理解

简单理解来说就是:

  1. 通过建造者类、简化了我们创建对象的过程,这个过程由建造者 替我们完成,而我们只需要给建造者 一些提示。 这里我们传入了一个名字
  2. 建造者完成对象的组装、我们最后只需要产品。PhoneProduct
  3. 通过抽象工厂,按照名称创建指定的工厂小米工厂,然后再从大工厂里面取出我们这里需要的手机工厂 在通过手机工厂 创建出手机产品
  4. 最后返回给我们的访问类main()

小结

想不到吧,这个所谓的建造者 已经在潜移默化中,已经被我们所使用过了。其实设计模式一点都不难,所谓设计模式,就是前人总结的经验套路、就是这样拿来用的,就这样理解。

参考

http://c.biancheng.net/view/1354.html

代码示例

https://gitee.com/mrc1999/Dev-Examples

欢迎关注

JAVA设计模式 4【创建型】理解建造者模式的更多相关文章

  1. Java设计模式(四)Builder建造者模式

    一.场景描述 建造者模式同工厂模式.抽象工厂模式一样,用于创建继承类对象. 工厂模式:http://www.cnblogs.com/mahongbiao/p/8618970.html 抽象工厂模式:h ...

  2. Java设计模式之创建型模式

    创建型模式分为五类:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式 一.工厂方法模式:接口-实现类.工厂类

  3. JAVA设计模式之简单粗暴学建造者模式

    文章由浅入深,先用简单例子说明建造者,然后分析模式的优缺点,最后结合优秀开源框架Mybatis,说明该模式的用处. 1.先定义一个机器人模型 package com.jstao.model; publ ...

  4. java设计模式(二)单例模式 建造者模式

    (三)单例模式 单例模式应该是最常见的设计模式,作用是保证在JVM中,该对象仅仅有一个实例存在. 长处:1.降低某些创建比較频繁的或者比較大型的对象的系统开销. 2.省去了new操作符,减少系统内存使 ...

  5. Java设计模式菜鸟系列(十五)建造者模式建模与实现

    转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39863125 建造者模式(Builder):工厂类模式提供的是创建单个类的模式.而建造者模 ...

  6. Java设计模式之(三)——建造者模式

    1.什么是建造者模式 Separate the construction of a complex object from its representation so that the same co ...

  7. Java设计模式_创建型模式_单例模式

    单例模式的实现: 定义一个类,在类中定义该类的静态变量,再定一个一个获取该类的静态变量的方法. UML图:

  8. 设计模式之第11章-建造者模式(Java实现)

    设计模式之第11章-建造者模式(Java实现) “那个餐厅我也是醉了...”“怎么了?”“上菜顺序啊,竟然先上甜品,然后是冷饮,再然后才是菜什么的,无语死了.”“这个顺序也有人这么点的啊.不过很少就是 ...

  9. 【java设计模式】(4)---工厂模式(案例解析)

    设计模式之工厂模式 工厂模式分三种:简单工厂模式(也叫静态工厂模式),工厂方法模式(也叫多形性工厂),抽象工厂模式(也叫工具箱)下面会一一举例. 一.概念 1.什么是工厂模式 这种类型的设计模式属于创 ...

  10. 设计模式学习-使用go实现建造者模式

    建造者模式 定义 适用范围 与工厂模式的区别 优点 缺点 参考 建造者模式 定义 Builder 模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式. 建造者模式(Builder Patt ...

随机推荐

  1. Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量

    给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母. 元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母. 输入格式 输入一行,包含一个单词,单词中只包含小写英文字母. 输 ...

  2. Java实现 LeetCode 560 和为K的子数组(某著名排序大法改编)

    560. 和为K的子数组 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数. 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] ...

  3. Java实现蓝桥杯 算法训练 大等于n的最小完全平方数

    试题 算法训练 大等于n的最小完全平方数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输出大等于n的最小的完全平方数. 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平 ...

  4. java实现平面4点最小距离

    已知平面上若干个点的坐标. 需要求出在所有的组合中,4个点间平均距离的最小值(四舍五入,保留2位小数). 比如有4个点:a,b,c,d, 则平均距离是指:ab, ac, ad, bc, bd, cd ...

  5. java实现第五届蓝桥杯生物芯片

    生物芯片 X博士正在研究一种生物芯片,其逻辑密集度.容量都远远高于普通的半导体芯片. 博士在芯片中设计了 n 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮. 这些光源的 ...

  6. 第一章02-异常情况下Activity的生命周期

    异常情况下的生命周期分析 1. 资源相关的系统配置发生改变导致Activity被杀死并重新创建 比如,屏幕旋转,默认情况下Activity会被销毁并且重新创建,不过我们也可以阻止系统重新创建我们的Ac ...

  7. Debian安装NVIDIA显卡驱动

    1. sudo apt-get install nvidia-detect nvidia-detect 输出信息: Detected NVIDIA GPUs: 01:00.0 VGA compatib ...

  8. Spark-stream,kafka结合

    先列参考文献: Spark Streaming + Kafka Integration Guide (Kafka broker version 0.10.0 or higher):http://spa ...

  9. 织梦cms 内容模型 option下拉框 value 分离

    需要修改的文件在根目录include/customfields.func.php文件 foreach($items as $v) { $v = trim($v); if($v!='') { $myfo ...

  10. c常用函数-strlen

    strlen 返回字符串长度 Action() { char test[] = "yyyHHHJJJoo"; unsigned int a; a = strlen(test); l ...