在运行时,根据用户行为和历史记录,我需要执行排序操作。就我而言,SortByDate/SortByDemand/SortByConsumption
只会返回字符串,或者我们可以说 order by 子句(这可能很复杂)。
在大多数论坛中,我发现应该使用策略模式进行排序。
我在这里附上了策略模式的图像。 Util 类将调用三个类之一的对象,即 SortByDate/SortByDemand/SortByConsumation
因此,每次定义新的排序方法时,我都需要更改 util 类并定义新的策略。
但是,如果我使用工厂实现它,则 util 类只需要调用工厂,它将负责调用哪个类。所以我想我应该使用工厂。
然而,我读到策略是满足此类需求的最佳模式。为什么策略模式在这里更好?
你所做的不是工厂模式,而是两者的混合,这并不明确,而且在我看来是错误的。
在第二个示例中,类名是错误且令人困惑的。SortByDateFactory
它的行为不像工厂(它不生产任何东西),但它的行为确实像策略。因此,它应该遵守策略接口。
另一方面,在第一个示例中,UtilClass
行为就像你想要建造的工厂。因此,我建议保留第一个示例,但重命名UtilClass
to SortStrategyFactory
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)