当我需要一个扩展现有类行为的新类的名称时,我通常很难为它提供一个名称。
例如,如果我有一个MyClass类,那么新类可以命名为MyClassAdapter,MyClassCalculator,MyClassDispatcher,MyClassParser,......
这个新名称当然应该代表类的行为,理想情况下与使用它的设计模式相同(Adapter,Decorator,Factory,...)。但由于我们没有过度使用设计模式,因此并不总是解决方案:)
那么,您是否知道字典或常用词列表,我们可以用来表示类的行为,包含对预期行为的简短描述?一些例子:replicator,shadow,token,acceptor,worker,mapper,driver,bucket,socket,validator,wrapper,parser,verifier,...
您还可以将此列表视为隐喻的备忘单,您可以使用该备忘录更好地了解您的问题域。
答案 0 :(得分:2)
我建议不要在名称中使用设计模式。您从名称MyClass开始,并将其扩展为MyClassAdapter,MyClassCalculator,MyClassDispatcher,MyClassParser等。
但既然你知道这些是类,而且它们属于你的,为什么不适用,计算器,调度程序,解析器。
但适配器是否普遍按照它所说的去做?计算器是否完全计算任何东西,或者是否有特定的工作?
好的名字可能是WindowToCommProtocol(它适应的名称),Payroll(计算只是一个任务),UICentral(听起来像是我的调度员)等等。计算器和解析器通常不应该在他们的工作完成后保留状态所以这些听起来更像是功能,而不是课程。
答案 1 :(得分:0)
我认为尝试从名称中反映(或表示或暗示或暗示或暗示)类的行为是相当奇怪的。当然,类的行为是由它的方法定义的吗?
我认为你的使用我的词典会要求你订阅我对世界的思考方式。即使我们在同一个问题领域工作(我打赌我们不是),我认为这对你来说并不容易。
因此,我建议您做自己几乎建议的事情:从问题域的术语中获取自己的字典。该练习将帮助您理解该领域。
最后,你可能会更好地接触词库,而不是字典。