桥模式适合吗?

时间:2015-03-17 05:53:20

标签: design-patterns

我的问题域中有一个模型类和一个抽象的 Item 类。 Model对象包含 Item 对象的列表。每个Item对象都有三个要执行的任务:

  1. 读取/写入Excel文件。
  2. 读取/写入二进制文件。
  3. 读取/写入硬件。
  4. 由于某些原因,我想将这三个工作分为三个单独的类,而不是将它们全部放在 Item 子类中,并且每个 Item 子类都有所不同实施这三项工作。

    下面的链接是我当前设计的UML类图。随着Item子类的增长,会有更多 ItemXXXHandler_X 。似乎应该有更好的设计。

    http://i57.tinypic.com/6epshg.png

1 个答案:

答案 0 :(得分:0)

是的,Bridge pattern可以在这里应用。看起来你有足够的复杂性,可以独立发展。仍然在你当前的设计中,你必须引入一些抽象来实现这一切。我看到Separation of concerns是您的主要目标,但您可以应用其他原则。 Inversion of control将非常适合您的模型,因为Bridge实际上强制执行它。另一位候选人可能是separated Interface

enter image description here

在某种程度上,你可以瞄准plugin architecture,这可能是这样的:

enter image description here