GRASP创建者模式标准



在我正在阅读的一本书(应用UML和模式)中,以下是一些事实来决定a对象是否是另一个B对象的创建者(GRASP创建者模式):

  • B聚合对象A
  • B包含对象A
  • B记录A对象的实例
  • B密切使用A的对象

我不清楚"聚合"、"包含"、"记录"one_answers"紧密使用"的区别。

有人能用一些例子来解释上述标准吗?

以下是Larman本人在书中给出的一些例子:

  • 聚合:销售聚合SalesLineItems
  • 包含:大富翁委员会包含方块
  • 记录:注册记录销售额
  • 密切使用:销售密切使用付款

你遗漏了一个标准,我举一个例子:

  • 具有的初始化数据:从系统操作调用的用例"处理程序"通常具有初始化对象所需的参数。调用enterItem(itemID : ItemID, quantity : integer)系统操作时,ProcessSaleHandler具有SalesLineItem的初始化数据

是的,这些术语有一些歧义。

它们大多定义了现实世界中的关系。例如,当我们与某人交谈并说"某事包含某事"时,我们没有任何疑问。

但在这种情况下,最好有一些有正式定义的类比。

1) "骨料"。这很简单。这个术语对应于UML 中的"聚合"关系

2) "包含"。根据作者的书,我们有以下例子:"大富翁板包含方块"。事实上,这种关系对应于"组成"。因此,我们可以得出结论,这个关系图对应于UML中的"组合"关系。

3) "记录"。这是最"奇怪"的关系。但是,让我们再来看看他的书。我们可以看到,这种关系出现在"Register"类的上下文中。这是他注册处的具体工作,与一些常见的事情无关。但我们可以对此进行概括,得出Register类在"Payment"one_answers"Sale"之间使用"Association"的结论。因此,我们可以得出结论,"记录"对应于"UML"中的"关联"。

4) "密切使用"。这也很简单。这个术语对应于UML中用<lt;使用>>

最新更新