You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指定方向排序的设计模式:为SortBy类接口新增getDirection方法是否更优?

结论

给所有SortBy*类实现的公共接口新增getDirection()抽象方法,是远优于静态Map存储的方案,原因如下:

  • 内聚性更合理:排序类的默认方向是该类本身的固有属性,和类内部的排序逻辑强绑定,直接在类内部声明符合高内聚的设计原则,避免了类属性和所属类分离、散落在第三方类中的问题。
  • 错误发现时机更早:新增SortBy*类时如果漏实现getDirection()方法,编译阶段就会直接报错;而静态Map方案如果漏加类和方向的对应键值对,只有运行时调用到对应逻辑才会触发异常,排查成本高很多。
  • 维护成本更低:新增排序类时只需要关注类本身的实现,不需要同步修改持有静态Map的第三方类,代码修改点集中,也符合开闭原则的要求。
  • 避免额外风险:不需要维护独立的类-方向映射关系,不存在Map被其他业务逻辑误修改、导致映射关系错乱的隐性风险。

你原本设计的三步执行逻辑不需要做大幅调整,只需要把第二步「获取类默认排序方向」的逻辑,从读取静态Map改为调用排序类实例的getDirection()方法即可,原有业务流程完全可以复用。


内容的提问来源于stack exchange,提问作者heckeop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:39:01