6

当我需要一个扩展现有类行为的新类的名称时,我通常很难为它想出一个名称。

例如,如果我有一个 MyClass 类,那么新类可以命名为 MyClassAdapter、MyClassCalculator、MyClassDispatcher、MyClassParser 等。

这个新名称当然应该代表类的行为,并且理想情况下与使用它的设计模式相同(适配器、装饰器、工厂......)。但是由于我们不会过度使用设计模式,这并不总是解决方案:)

那么,您知道我们可以使用字典或常用词列表来表示类的行为,其中包含对预期行为的简短描述吗?一些示例:复制器、影子、令牌、接受器、工作者、映射器、驱动程序、存储桶、套接字、验证器、包装器、解析器、验证器...

您还可以将此列表视为隐喻的备忘单,通过它您可以更好地了解您的问题域。

4

2 回答 2

2

我建议不要在名称中使用设计模式。您从名称 MyClass 开始并将其扩展到 MyClassAdapter、MyClassCalculator、MyClassDispatcher、MyClassParser 等。

但是既然你知道这些是类,而且它们是你的,那为什么不使用 Adapter、Calculator、Dispatcher、Parser。

但是适配器是否普遍按照它所说的去做?计算器绝对计算任何东西,还是有特定的工作?

好的名称可能是 WindowToCommProtocol(命名它适应的内容)、Payroll(计算只是一项任务)、UICentral(对我来说听起来像是一个调度程序)等。计算器和解析器通常不应该在他们的工作完成后保留状态,所以那些对我来说,听起来更像是函数,而不是类。

于 2010-05-02T20:32:54.480 回答
0

我认为试图从一个类的名称中反映(或表示或建议或表示或暗示)一个类的行为是相当奇怪的。一个类的行为肯定是由它的方法定义的吗?

我还认为,使用我的字典需要您订阅我对世界的思考方式。即使我们在同一个问题域中工作(我敢打赌我们不是),我认为这对你来说并不容易。

因此,我建议您按照自己的建议去做:从问题领域的术语中导出您自己的字典。该练习将帮助您理解该领域。

最后,比起字典,你可能会更好地使用同义词库。

于 2010-04-25T16:12:12.213 回答