设计模式可复用面向对象软件的基础 第3章 创建(10)
发布时间:2021-06-05
发布时间:2021-06-05
本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用
正如我们在实现一节所讨论, M a z e F a c t o r y仅需一个实例变量 p a r t C a t a l o g来提供一个字典,
这个字典的主键为迷宫组件的类。也回想一下
我们是如何实现 m a k e :方法的:
现在我们可以创建一个 M a z e F a c t o r y并用它来实现 C r e a t e M a z e。我们将用类 M a z e G a m e
的一个方法C r e a t e M a z e F a c t o r y来创
建该工厂。
通过将不同的类与它们的主键相关联,就可以
创建一个 B o m b e d M a z e F a c t o r y或E n
c h a n t e d M a z e F a c t o r y。例如,一个E n c h a n t e d M a z e F a c t o r y可以这样被创建:
11. 已知应用
I n t e r Vi e w使用“K i t”后缀
[ L i n 9 2 ]来表示A b s t r a c t F a
c t o r y类。它定义 Wi d g e t K i t
和D i a l o g K i t抽象工厂来生成与特定视感风格相关的用户界面对象。 I n t e r Vi e w还包括一个L a y o u t K i t,它根据所需要的布局生成不同的组成( c o m p o s i t i o n)对象。例如,一个概念上是水平的布局根据文档的定位(画像或是风景)可能需要不同的组成对象。
E T + + [ W G M 8 8 ]使用Abstract Factory模式以达到在不同窗口系统(例如, X Wi n d o w s和 S u n Vi e w)间的可移植性。 Wi n d o w S y s t e m抽象基类定义一些接口,来创建表示窗口系统资源的对象(例如 M a k e Wi n d o w、M a k e F o n t、M a k e C o l o r)。具体的子类为某个特定的窗口系统实现这些接口。运行时刻, E T + +创建一个具体 Wi n d o w S y s t e m子类的实例,以创建具体的系统资源对象。
12. 相关模式 A b s t r a c t F a c t o r y类通常用工厂方法( Factory Method(3 . 3))实现,但它们也可以用
P r o t o t y p e实现。一个具体的工厂通常是一个单件( S i n g l e t o n(3 . 5))。
3.2 BUILDER(生成器)—对象创建型模式
1. 意图
2. 动机
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
上一篇:WSUS服务器的迁移
下一篇:特种加工论文