Have you ever buy a computer online, maybe from dell? In dell’s
website, we just need to follow its process to order the accessories
you need, then you can get your own computer configuration. Of course,
you can’t get the real computer until you pay it
Here, you direct the producer to produce your own computer
through the dell website. Ok, three roles here, you, dell website and
the real producer.
If we change the You to Director, DellWebsite to Builder and
RealProducer to ConcreteBuilder, then this class diagram will be
totally like that in a pattern called builder, and this is the topic
today.
The intent of this pattern is as follows.
Separate the construction of a complex object from its
representation so that the same construction process can create
different representations.
–By GOF BOOK
In our example, the computer is a complex object, and we use the
accessories’ description for its representation, and the construction
process is the same.
So, our class diagram will be as follows.
Here, we use the description for the return value of getProduct() method in ComputerBuilder.
Now, the Director controls how to produce the computer in
orderComputer() method, and the ComputerBuilder is the real action
taker, it produces the real computer you want. If you want to get
another kind of computer, you need to add another concrete builder
class to build your dream computer
In our code, we can call produce the computer in this way.
- var
builder
:
Builder
=
new
ComputerBuilder
()
;
- var
director
:
Director
=
new
Director
(
builder
)
;
- director
.
orderComputer
()
;
Further more, you can compare this pattern with the template method.
When you join the Director and the Builder interface together, it looks
like the template method, isn’t it?
Download Full Project
Enjoy!
分享到:
相关推荐
Go Design Patterns for Real-World Projects 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Go Design Patterns for Real-World Projects 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Data Structures and Algorithms with Object-Oriented Design Patterns in CSharp - Bruno R. Preiss
"Laracasts - design-patterns-in-php.torrent"则可能是一个BT种子文件,用于通过BitTorrent协议下载整个课程的大型数据包,这通常包括所有视频讲座和其他相关文件。 在课程"设计模式在PHP中"中,你可能会学到以下...
The topic of Design Patterns sounds dry, academically constipated and, in all honesty, done to death in almost every programming language imaginable—including programming languages such as JavaScript...
Use creational patterns of builder, factories, prototype and singleton Implement structural patterns such as adapter, bridge, decorator, facade and more Work with the behavioral patterns such as ...
https://github.com/kamranahmedse/design-patterns-for-humans 中文翻译,实例修改位JAVA代码
《Kotlin设计模式实战解析》 在编程领域,设计模式是一种通用、可重用的...开源项目"Design-Patterns-In-Kotlin"则是一个很好的学习资源,它提供了各种设计模式在Kotlin中的具体实现,有助于开发者深入学习和实践。
《ActionScript设计模式》是软件开发领域中针对ActionScript编程语言的一种实践指南,它深入探讨了如何在ActionScript项目中应用经典的设计模式。设计模式是软件工程中的宝贵经验总结,它们是解决常见问题的可复用...
Go: Design Patterns for Real-World Projects What You Will Learn: Install and configure the Go development environment to quickly get started with your first program Use the basic elements of the ...
Java+Enterprise+Design+Patterns+-+Patterns+in+Java+Volume+3Java+Enterprise+Design+Patterns+-+Patterns+in+Java+Volume+3
《Pro-Objective-C-Design-Patterns-for-iOS》是一本专注于在iOS平台上利用Objective-C语言实现设计模式的专业书籍。书中旨在帮助已经有一定Cocoa开发基础的开发者,通过掌握设计模式的实践应用,提升软件开发的生产...
这个压缩包“java-design-patterns-master”显然是一个专注于Java设计模式的学习资源,旨在帮助开发者深入理解和应用这些模式。下面我们将详细探讨Java设计模式及其在实际开发中的应用。 1. **单例模式(Singleton...
在本论文“2010-13-Design Patterns for Safety-Critical”中,作者Ashraf Armoush探讨了如何将设计模式的概念应用于安全关键嵌入式系统的开发。他构建了一个设计模式目录,这个目录包含了一系列针对硬件和软件的...