簡體   English   中英

適配器設計模式-角色之間的關系類型

[英]Adapter Design Pattern- Relationship Types Between Roles

我很想知道適配器設計模式的不同角色之間的關系(聚合,組成)。 對於關聯和聚合,我仍然沒有什么困惑。 我已經在下面發布了Adapter的類圖。 我需要知道適配器是否與適配器處於聚合關系。

適配器設計模式UML

聚合關系的定義如下面的代碼片段所示。我知道UML中沒有隱含聚合,但是我看到適配器和適配器中有類似的實現,如下面的代碼所示。

final class Car {

  private Engine engine;

  void setEngine(Engine engine) {
    this.engine = engine;
  }

  void move() {
    if (engine != null)
      engine.work();
  }
}

有人可以向我解釋一下,為什么適配器和適配器之間的關系不屬於“聚合”類別。

聚集是關系的一部分。

在UML之前的日子里,人們通常對什么是聚集和什么是關聯感到含糊。 無論是否模糊,它們始終與其他所有人不一致。 結果,盡管出於不同的原因,許多建模人員認為聚合很重要。 因此,UML包含聚合,但幾乎沒有任何語義。 正如Jim Rumbaugh所說,“將其視為建模安慰劑”

摘自UML Distilled:《標准對象建模語言簡要指南,第三版》

因此,根據定義,適配器可能不會聚集適配器。 換句話說,適配器可能與適配器沒有部分關系。

另一件事是事實,聚合沒有語義,因此使用聚合已或多或少成為個人選擇。

最后一件事。 我總是對關聯,聚合和組成之間的區別感到模糊,但是在閱讀了Eric Evans的DDD之后,我有了另一種看法,因此我寫了一篇有關該主題的文章。 如果您想看看Context中的關系

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM