GRASP Creator Pattern标准

时间:2014-11-02 03:49:25

标签: design-patterns

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

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

我不清楚"聚合","包含","记录"和"密切使用"

有人可以用一些例子解释上述标准吗?

2 个答案:

答案 0 :(得分:3)

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

  • 汇总:销售汇总 SalesLineItems
  • 包含:垄断委员会包含 Squares
  • 记录:注册记录销售
  • 密切使用:销售密切使用付款

你遗漏了一个标准,我会给出一个例子:

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

答案 1 :(得分:0)

是的,这些术语有些含糊不清。

他们中的大多数都定义了现实世界的关系。 例如,当我们与某人交谈并说“#34;某些内容包含某些内容"”时,我们没有任何问题。

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

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

2)"包含"。根据作者的书,我们有以下例子:"垄断委员会包含Squares"。事实上,这种关系对应于"组合"。 因此,我们可以得出结论,这种关系对应于"组合" UML中的关系。

3)"记录"。这是最奇怪的" relationshup。但是,让我们再看看他的书。我们可以看到这种关系出现在" Register"类。这是他的注册表的特定工作,并且对一些常见的事情不做任何事但是我们可以概括这一点并得出结论,Register类使用" Association"介于"付款"和"销售"。 因此,我们可以得出结论"记录"对应于"关联"在" UML"。

4)"密切使用"。这也很简单。这个术语对应于"依赖"用UML标记的<<使用>>