我有使用策略模式的类(每个类都有相同的单个方法,但实现方式却截然不同)。我有另一个类,它根据运行时可访问的值选择要使用的实现。我有一个最终类,基本上将其他类拉到一起,调用实现类的必要方法并格式化输出。
我可以将这个控制器类命名为至少半透明它的用途是什么?在有人要求之前,它已经是一个非常小的类(< 100行),不值得拆分 - 我有信心这不是因为多重责任我在命名时遇到了麻烦。
我想说“控制器” - 但这已经是MVC架构中的一个特定概念(我们的应用程序正在使用它)。有任何想法吗?我所描述的模式是否有可接受的名称?
答案 0 :(得分:1)
在OOP中,类通常应以它们是什么命名;类名应该是名词。你已经知道了。
类名XyzManager
或XyzController
的问题在于,虽然从技术上讲它们是名词,但它们真的是伪装成名词的动词。因此,这些类以他们做什么命名,而不是他们是什么。这使它们不是对象,而是服务或功能。
现在,命名很难,有时使用XyzManager
无法避免。通常,当它发生时,这是因为你还没有意识到类真正应该封装的概念。不过,您应该努力确定 类的内容,而不是 的内容,并在此之后命名。
FWIW,我经常使用同义词库(有几个优秀的在线服务)来找到一个好名字。
答案 1 :(得分:0)
我想将其命名为服务
示例:如果您有TaxStrategyGerman,TaxStrategyFrench由TaxStrategyFactory选择并由TaxCalculationService使用。