首页 > 解决方案 > 设计模式——帮助类的最佳场所

问题描述

我有一个关于源代码结构的问题。我应该分配实现某些逻辑的帮助程序类的包是什么。

在此处输入图像描述

这是我的源代码结构。让我解释一下:

在获取航班信息时,我有很多规则,例如行李限额规则(BaggageAllocationRule.java)、用餐规则、座位分配规则……以上所有规则都有在 FlightCommonRule 类中定义的通用信息(扩展抽象类 Rule)。然后,我有抽象类 RuleMatcher,它提供了查找匹配规则的函数。RuleMatcher 有 2 种类型,SingleHitRuleMatcher(最多返回一个规则),MultipleHitRuleMatcher(返回多个规则)。

我认为 BaggageAllowanceRuleMatcher、SingleHitRuleMatcher、MultipleHitRuleMatcher、RuleMatcher 分配在错误的包(模型)中。

我应该如何重构源代码?

标签: javaspringdesign-patternsstructurehelper

解决方案


我不认为有任何单一的正确答案。但我更愿意这样做。基本上在“com.rule”命名约定中,您可以将“rule”作为您的应用程序名称(这是您的基本包)。在里面你可以有“模型”和“匹配器”包。我认为没有必要在“模型”包中包含“规则”,除非您有太多与规则无关的其他模型类(在构建规则服务时无论如何都不应该是这种情况)。

com.rule.model
      Rule1.class
      Rule2.class

com.rule.matcher
      Matcher1.class
      Matcher2.class

推荐阅读