“现实生活”中的策略模式

Nat*_*ati 1 design-patterns strategy-pattern

我正在尝试将维基百科的策略模式示例转换为现实生活中的问题,但我不确定我的场景是否确实需要这种模式。

假设我们有一项服务可以从多个客户端获取更新,并且需要进行一些处理并向前推进这些更新,具体取决于它们的大小。我希望服务尽可能简单,并对未来的更新格式(来自其他客户端)开放。

我想我可以通过使用这种模式让更新本身决定如何进行处理和前进,并让服务尽可能简单。像这样的东西:

public class Service {
    void processUpdate(Update myUpdate) {

        myUpdate.process();
        myUpdate.moveForward();
    }
}         
Run Code Online (Sandbox Code Playgroud)

我错了吗 ?如何(在哪里...)为每次更新分配策略?

tal*_*eth 5

搞不好设计模式的最简单方法就是学习一种模式,然后尝试寻找放置它的地方。我刚开始学习的时候也这样做过几次,结果却很令人沮丧。

策略模式是针对特定形式问题的解决方案。这个问题是“我需要做的事情基本相同,但中间有一些变化”。因此,现在请记住如何制定策略模式,当您看到表明该模式的问题时,请使用它。