java - Strategy Pattern with strategies 包含相似的代码

标签 java algorithm design-patterns strategy-pattern

在大多数示例中,策略模式通常适用于压缩算法/编解码器算法,其中这些算法可能具有完全不同的代码。

但是,在我的例子中,我想重构为策略模式的统计算法有 50% 的代码相似或完全相同。我想知道人们如何处理这个问题?如果我使用策略模式,可能会有 50% 的代码被复制,这是不希望的。如果不重构,代码将以多组 if-else 结束,以处理不同类型的统计算法。如何评估权衡?还有什么其他可能的解决方案?

最佳答案

最终目标不是尽可能减少代码重复。 目标是使代码易于维护。您需要问问自己,减少这种重复是否会使策略实现更容易或更难维护。

如果减少重复使代码更难维护,则保留重复,但可能会找到另一种方法来减轻担忧(文档和测试是两种可能的方法)。

如果减少重复会使代码更易于维护,那么请考虑消除重复的可能方法(委托(delegate),如 Strategy 和 Decorator;继承,如 Template Method 等)。

关于java - Strategy Pattern with strategies 包含相似的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31647268/

相关文章:

java - 使用 fireIntervalAdded() 方法在 JList(使用 JScrollPane)上显示 Person 类型对象

java - 验证多层应用程序输入数据的最佳实践

c++ - 如何访问和管理 block 存储的数据

caching - LRU 缓存如何符合 CAP 定理?

java - AuthenticationProvider 和 AuthenticationEntryPoint 之间的区别

java - 文件索引程序不工作

java - ScheduledExecutorService 中的线程排队

python - 仅使用一个辅助数组实现合并排序(而不是递归地创建新数组)

algorithm - Theta 表示法和最坏情况运行时间嵌套循环

ios - 两个 View 层次结构之间的公共(public) subview