关于GOF的“设计模式”中的 UML描述

timmego 2006-02-16 12:46:34
我学UML不是很久,看GOF的“设计模式”中的 UML土图觉“他们好像画错图拉”,我知道一定不是,大家一齐帮忙研究一下。下面举个“BUILDER MOTHOD”的UML图:

Director <>------> Builder
A
|
|
ConcreteBuilder -----> Product

我觉得应该是:
1. 类“Director” 与 类“Builder” 应为 依赖关系 即 Director ------> Builder 。

2. 类 “ConcreteBuilder” 与 类“Product” 之间应该是 聚合关系
即 ConcreteBuilder <>-----> Product.

怎么“他们”好象“用反”了图标?请指教。
...全文
223 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Frank6600 2006-02-19
  • 打赏
  • 举报
回复
更正一下,
上文我提到
我认为类 "Builder" 与 "ConcretBuilder" 之间是「实现」关系,
是因为为了便于理解,我自己画图时把 Builder 画成 Interface 了,
故认为是「实现」关系。

但图中分明把 Builder 画成 Abstract Class,
故用泛化关系来表示,是完全对的。

Frank6600 2006-02-19
  • 打赏
  • 举报
回复
总的来说,

类“Director” 与 类“Builder” 应为 调用关系
他用单向聚合关系来表示,可以理解。
我个人认为是对的。

类 “ConcreteBuilder” 与 类“Product” 之间应该是 实例化关系
他用依赖或实例化关系来表示,是对的。

类 "Builder" 与 "ConcretBuilder" 之间,是继承或实现的关系,
他用继承或泛化关系来表示,是对的。
 
因此,我认同他的画法。
Frank6600 2006-02-19
  • 打赏
  • 举报
回复
> 类 “ConcreteBuilder” 与 类“Product” 之间应该是 聚合关系

这又是怎么说﹖

我怎么看也觉得他们之间是「实例化」关系。

而 ---------> 既可以表示「依赖」关系,也可以表示「实例化」关系。

至于类 "Builder" 与 "ConcretBuilder" 之间,
它用「继承」或「泛化」关系来表达,
我个人则认为是「实现」关系。
而「实现」与「继承、泛化」关系,是有关连的,分别不是很大。
 
pascal_lee_tw 2006-02-19
  • 打赏
  • 举报
回复
Ding
Frank6600 2006-02-19
  • 打赏
  • 举报
回复
> UML都是从GOF那里演变过来的吧?

是吗﹖

不是吧!﹖
Frank6600 2006-02-19
  • 打赏
  • 举报
回复
我倒觉得 Director 与 Builder 之间是调用关系
Frank6600 2006-02-19
  • 打赏
  • 举报
回复
首先反问你,为什么认为 Director 与 Builder 之间是依赖关系﹖
timmego 2006-02-19
  • 打赏
  • 举报
回复
请关照
yjdabc 2006-02-16
  • 打赏
  • 举报
回复
你可以参考《UML与模式应用》第二版
jiezhi 2006-02-16
  • 打赏
  • 举报
回复
gof中的图不是标准的uml图
timmego 2006-02-16
  • 打赏
  • 举报
回复
请看一下。
timmego 2006-02-16
  • 打赏
  • 举报
回复
那你们的意思是图有没有错?UML都是从GOF那里演变过来的吧? 怎么“依赖关系”的图标和“聚合关系”的图标与 现在的 UML刚好调转?郁闷ing...

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧