【发布时间】:2010-07-26 15:19:24
【问题描述】:
我正在实施一些策略(Strategy Pattern),它们有一些共同的行为,但我不确定共同操作应该放在哪里。
- 假设我有 1 个上下文和 3 个策略,策略中使用的一些操作是共享的,一些只需要 2 个其他的只是策略之一。
- 没有共享成员级别的状态,因此唯一的操作实际上是无状态的。
- 这些操作的目的是支持将状态格式化为文件,例如视图助手。
选项 1:创建一个 AbstractStrategy 类
- 我正在使用 Java,所以这立即 带走在 未来。
- 往往会产生继承。 在山脊结构中。
- 操作将是最终的。
选项 2:创建静态帮助器的 Util 类
- 灵活,但不知为何感觉像是代码异味。
- 没有脊。
有什么建议或偏好吗?
请注意,我工作的级别是策略级别,而不是上下文级别(请参阅维基百科链接)。
【问题讨论】:
-
当需要遵循 open-close 模式时,我更喜欢使用抽象,即程序将对扩展开放但对修改关闭...
标签: java design-patterns oop