【问题标题】:I think I need an adapter pattern here, but I seem to be repeating method implementation details我想我在这里需要一个适配器模式,但我似乎在重复方法实现细节
【发布时间】:2011-04-23 16:42:16
【问题描述】:

您可以在下面看到,我有两个具体的类,它们可以共享已经通过抽象类提供的几乎所有实现细节。他们每个人只需要自己实现 2-3 个方法。但是,ImplOne 也从 InterfaceTwo 实现,它有额外的 1-2 个方法要实现。我不想在ImplOne 中提供与在AbstractImpl 中完全相同的实现细节,但我现在在这里所拥有的似乎并不正确。在适配器模式中,从我看到的示例来看,实现细节似乎确实与正在适配的接口重复。

       InterfaceOne
         /      \
InterfaceTwo  AbstractImpl
         \      /       \
          ImplOne      ImplTwo

【问题讨论】:

  • 重复在哪里?我不明白为什么你必须重复实现。
  • 扩展一个实现了InterfaceOne的抽象类,然后再实现InterfaceTwo,它也扩展了InterfaceOne,这不是有什么问题吗?我不知道,但这似乎有些不对劲。
  • 这绝对没有错。这只是类型信息。这些方法不必因此而重新实现。

标签: java design-patterns adapter


【解决方案1】:

这个场景没有问题。 ImplOne 必须实现在 interfaceOne 或 interfaceTwo 中声明的所有方法,除非已由 abstractImpl 实现。 implOne 还必须实现来自 abstractImpl 的抽象方法。作为练习,我建议创建一个没有方法的 ImplOne,让编译器告诉你需要实现哪些方法。

【讨论】:

    猜你喜欢
    • 2018-06-11
    • 2014-07-18
    • 2021-02-03
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多