Builder生成器(创建型模式)

一、使用场景:

1、假设要创建一个House设施,该设施的创建由若干个部分组成,而且这若干个部分经常变化。

如果用最直观的设计方式,每一个房屋部分的变化,都将导致整个房屋结构的重新修正,但是这种设计方式,维护成本太高,而且如果对象极度复杂,那么很容易就会产生问题!

So,Builder  Pattern  is  userd to solve this   paogram!

2、意图

讲一个复杂对象的构建与表示相分离,使得同样的构建过程可以创建不同的表示。                                                                               ---设计模式《GOF》

3、抽象图

当软件的"主线"

比较稳定,当主线边上的枝枝叶叶变化频繁的话

4、Bulider模式的使用动机

在软件系统中,有时候面临这一个"复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个对象的子对象经常面临这剧烈的变化,但是将它们组合在一起的算法却非常的稳定。

那么如何应对这种变化?如何提供一种"封装机制"来隔离出复杂对象各个部分的变化,从而保证系统中的稳定构建算法不随需求的变化而变化?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏积累沉淀

Java设计模式(十八)----命令模式

命令模式 一、 概念 二、 结构 三、 具体案例 四、 宏命令 五、 命令模式优点 引子 ...

21880
来自专栏积累沉淀

Java程序员面试题集(86-115)

Java程序员面试题集(86-115) 摘要:下面的内容包括Struts 2和Hibernate的常见面试题,虽然Struts 2在2013年6月曝出高危漏...

33470
来自专栏积累沉淀

Java设计模式(十二)----享元模式

享元模式 一、 概念 二、享元的用途 三、结构和分类 1、单纯享元模式  2、复合享元模式 四、享元模式的优缺点 一、概念  F...

21560
来自专栏积累沉淀

Java设计模式(八)----代理模式

代理模式 1.生活中: 代理就是一个人或者一个组织代表其他人去做一件事的现实生活中的。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对...

251100
来自专栏积累沉淀

Java设计模式(二十一)----访问者模式

访问者模式 一、概述 1、定义 2、分派的概念 3、分派的类型 4、双重分派 二、结...

230100
来自专栏积累沉淀

Java设计模式(十一)----组合模式

组合模式 一、定义 二、结构 三、具体案例 四、适用性 五、...

23790
来自专栏积累沉淀

Java设计模式(十三)----策略模式

策略模式 一、概述 二、策略模式的结构 三、具体案例 四、认识策略模式 一、概述 1.定义 策略模式属于对象行为型模式,主要针对一组算法...

25660
来自专栏积累沉淀

Java设计模式(二十)----状态模式

状态模式 一、概述 二、结构 三、具体案例 四、认识状态模式 一、概述 定义:允许一个对象的内部状态改变时改变它的行为。对象看起来似...

23850
来自专栏企鹅号快讯

2018年java工程师就业前景数据分析

java语言在2017年就是一个备受争议的编程语言,有人说java语言已经过时了,java工程师已经饱和了;也有的人说java语言还是风光依旧,热度不减。但20...

33770
来自专栏积累沉淀

Java设计模式(二十二)----调停者模式

调停者模式 定义:调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发...

20780

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励