我正在尝试将维基百科的策略模式示例转换为现实生活中的问题,但我不确定我的场景是否确实需要这样的模式。
说我们有一个服务可以从多个客户端获取更新,并且需要进行一些处理并向前移动这些更新,具体取决于它们的大小。 我希望尽可能简化服务,并为未来的更新格式(来自其他客户)打开。
我想我可以通过使用这种模式让更新本身决定如何成为流程并向前推进,并让服务尽可能简单。像这样的东西:
public class Service {
void processUpdate(Update myUpdate) {
myUpdate.process();
myUpdate.moveForward();
}
}
我错了吗?如何(在哪里......)为每次更新分配策略?
答案 0 :(得分:2)
使用设计模式做一个糟糕工作的最简单方法是学习模式,然后尝试找到放置它的地方。当我第一次学习时,我做了几次,结果非常令人沮丧。
策略模式是针对特定问题形状的解决方案。那个问题是“我需要做的事情基本相同,但中间有一些变化”。所以现在,请记住如何制定策略模式,当您看到表明它的问题时,请使用它。
答案 1 :(得分:2)
使用此模式可以更轻松地添加或删除特定行为,而无需重新编码和重新测试应用程序的全部或部分内容;
好用途: