java - 设计模式——帮助类的最佳场所
问题描述
我有一个关于源代码结构的问题。我应该分配实现某些逻辑的帮助程序类的包是什么。
这是我的源代码结构。让我解释一下:
在获取航班信息时,我有很多规则,例如行李限额规则(BaggageAllocationRule.java)、用餐规则、座位分配规则……以上所有规则都有在 FlightCommonRule 类中定义的通用信息(扩展抽象类 Rule)。然后,我有抽象类 RuleMatcher,它提供了查找匹配规则的函数。RuleMatcher 有 2 种类型,SingleHitRuleMatcher(最多返回一个规则),MultipleHitRuleMatcher(返回多个规则)。
我认为 BaggageAllowanceRuleMatcher、SingleHitRuleMatcher、MultipleHitRuleMatcher、RuleMatcher 分配在错误的包(模型)中。
我应该如何重构源代码?
解决方案
我不认为有任何单一的正确答案。但我更愿意这样做。基本上在“com.rule”命名约定中,您可以将“rule”作为您的应用程序名称(这是您的基本包)。在里面你可以有“模型”和“匹配器”包。我认为没有必要在“模型”包中包含“规则”,除非您有太多与规则无关的其他模型类(在构建规则服务时无论如何都不应该是这种情况)。
com.rule.model
Rule1.class
Rule2.class
com.rule.matcher
Matcher1.class
Matcher2.class
推荐阅读
- java - PowerMockito spy 调用真实方法获取 NullPointerException
- xml - 如何将 XML 转换为纯文本
- javascript - 如何更改从数据表导出的 Excel 文件的字体大小?
- apache-flink - FLink中的主成分分析
- sharepoint - 发出 POST 请求以获取访问令牌时出错
- reactjs - ReactJS 使用动态键及其数据遍历状态数组
- scala - 在 scala 中正确使用 Either、Try 和 Exceptions/ControlThrowable
- javascript - Safari 对 HTML5 音频标签的行为非常奇怪
- typescript - 如何键入部分应用另一个函数的函数?
- office-js - body.getOoxml 的意外结果