代码之家  ›  专栏  ›  技术社区  ›  Patrick

扩展类:在类内进行还是使用观察者?

  •  0
  • Patrick  · 技术社区  · 15 年前

    我需要扩展一个类(C++中,但这个问题是语言无关的,我想),可以用两种不同的方式实现功能:

    • 只需将逻辑添加到类本身

    • 因为代码也可以用于其他类,所以在观察者中添加逻辑似乎更符合逻辑。未来的类只需要支持观察者。
    • 另一方面,在计算密集型代码中,观察者的影响是很难预见的。代码后面添加的新观察者可能会对计算密集型代码产生负面影响。

    有没有人明确规定什么时候在类中添加新功能,而不是把它放在类外的观察者中?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Ragster    15 年前

    我认为在这种情况下(和很多人一样),这要看情况而定。这是一个知道在你正在解决的问题的上下文中什么是合适的情况。

    从纯粹的意义上讲,您可能认为观察者模型在未来可能更易于扩展和操作。然而,如果真的要在合理的时间范围内工作的话,这种纯粹主义的观点很少考虑到实用主义的现实。

    不幸的是,只有你能知道-虽然它可能在一种情况下很好地工作,一个概念上相似的情况可能有不同的限制,并表现不佳(或完全不切实际)与同一个设计。

    人们可能有自己的偏好,而且这些偏好更多,或者大部分是适用的。但我怀疑他们是否能普及。

    你得好好想想,但这才是有趣的!

        2
  •  1
  •   Mike    15 年前

    Extension Interface pattern POSA1 .

    你可以考虑的另一种模式是 Proxy pattern 离散的 ,可以将代理对象彼此链接起来,并通过接口单独引用它们。这应该允许您将逻辑很好地分布在几个独立且可互换的对象上。

    考虑到我对你的情况了解不多,我很难在设计上给你更多的建议。但我希望这有帮助。

    推荐文章