我在一个论坛上找到了这个,它似乎解释得很好:
策略是一种模式,旨在允许您在不破坏算法客户端的情况下向您的软件添加新的(在您的情况下排序)算法。这是对设计复杂性的投资,如果您需要在不破坏客户的情况下添加新算法,它将获得回报。Factory 是一种补充 Strategy 的模式,因为算法实现的客户不应该具体知道他们正在使用哪个实现(就软件类而言)。工厂实例化算法的具体实现,因此客户端可以在不知道细节的情况下使用它们。
但是我无法理解 SortStrategtyInterface 的需要。我们不应该只要求工厂返回排序字符串吗?
另外,如果上面的事情是正确的,那么他们可以共享代码来调用它吗?还有一个例子,如果我删除 SortstrategyInterface,那么它会有什么缺点?