常见模式的命名约定?

8

就像Observer模式有一个命名约定(或者更准确地说,在诸如C#之类的语言中,使用Event/Handler传递EventArgs等命名约定),你是否有使用其他命名约定来轻松突出你代码中的其他模式?

编辑:我最初想问的是Strategy模式,但认为了解任何其他常见模式可能存在的约定也会很有帮助。

1个回答

6
我通常让类的后缀表示它是否使用了某种模式的思想,例如我的所有ViewModel都以ViewModel结尾,我的Views都以View结尾等等。对于你经常使用的模式(如Factory、ViewModel、Strategy),这样做非常好。有些模式则更为固有(我还没有给一个类命名为MonoState)-我想这与类的主要职责有关,或者我不会将其命名为实现细节(在我的书中,Monostate是一种实现细节)。如果它所做的事情符合它模拟/包含的模式,它就会得到一个带有该模式名称的后缀。
如果没有别的,这有助于我的类的读者了解我的实现思路,而我不需要写注释。如果可以的话,我会尽量使用通用名称(不使用C#特定的名称)-尽管ViewModels在WPF世界中有些专业化。
我在我的代码库中有很多IPricingStrategy、ICustomerViewModel等等。
希望这能像我写的时候对我一样有意义 :-)。

1
我最终采用的策略命名规范并没有太大的不同——接口名称带有后缀,方法通常以 Run...Strategy 命名。标识符可能会有点长,但很高兴听到我并没有走得太远。 - bwerks
如果你采用这种方法,我建议你在实现类的后缀中加上“Impl”,而不是在接口前缀中加上“I”。我们应该在整个代码中使用接口,例如,我更喜欢看到PricingStrategy而不是IPricingStrategy! - Charlie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接