设计模式学习总结(4) 建造者模式

本系列主要记录设计模式的意图是什么,它要解决一个什么问题,什么时候可以使用它;它是如何解决的,掌握它的结构图,记住它的关键代码;能够想到至少两个它的应用实例,一个生活中的,一个软件中的;这个模式的优缺点是什么,其有哪些使用场景,在使用时要注意什么。

尊重作者,转载请注明晔阳的Bloghttp://blog.csdn.net/hacke2

4.建造者模式

意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。

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

什么时候使用:一些基本部件不会变,而其组合经常变化的时候

如何解决 :将变与不变分离开

结构图

设计模式学习总结(4) 建造者模式_第1张图片

关键代码:建造者:创建和提供实例,导演:管理建找出来的实例的依赖关系

应用实例:1.去肯德基,汉堡,可乐,薯条,炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的“套餐”2.JAVA中的StringBuilder

优点:1建造者独立,易扩展 2.便于控制细节风险

缺点:1.产品必须有共同点,范围有限制 2.如内部变化复杂,会有很多的建造类

使用场景:1.需要生成的对象具有复杂的内部结构 2.需要生成的对象内部属性本身相互依赖

注意事项:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序

 

你可能感兴趣的:(设计模式学习总结(4) 建造者模式)