在运行时,根据用户行为和历史,我需要执行排序操作。在我的情况下,SortByDate/SortByDemand/SortByConsumption
将只返回字符串,或者我们可以说 order by 子句(这可能很复杂)。
在大多数论坛中,我发现应该使用策略模式进行排序。
我在这里附上了策略模式的图像。Util 类将调用三个类之一的对象,即 SortByDate/SortByDemand/SortByConsumption
所以每次定义新的排序方法时,我都需要更改util类并定义一个新的Strategy。
但是,如果我使用工厂实现它,则 util 类只需要调用工厂,它将负责调用哪个类。所以我认为我应该使用工厂。
但是,我读过该策略是满足此类需求的最佳模式。为什么策略模式在这里更好?