的Checkstyle的“AbstractClassName”检查使用下面的默认模式,检查是否存在应被声明为抽象类名称:Checkstyle的AbstractClassName检查:原因与“厂”结尾萎靡不振类
^Abstract.*$|^.*Factory$
我明白以'Abstract'开头的类应该被声明为抽象类。但为什么这也适用于以“工厂”结尾的类?
这真的是最佳做法吗?如果是的话,我应该如何命名我的工厂类?
的Checkstyle的“AbstractClassName”检查使用下面的默认模式,检查是否存在应被声明为抽象类名称:Checkstyle的AbstractClassName检查:原因与“厂”结尾萎靡不振类
^Abstract.*$|^.*Factory$
我明白以'Abstract'开头的类应该被声明为抽象类。但为什么这也适用于以“工厂”结尾的类?
这真的是最佳做法吗?如果是的话,我应该如何命名我的工厂类?
默认正则表达式来自抽象工厂模式 - 请参阅http://www.apwebco.com/gofpatterns/creational/AbstractFactory.html。
我承认我没有看到这个命名约定在野外。这是一个简单的事情来改变检查配置的是使用模式:
^Abstract.*$
像往常一样,Checkstyle的应作为指导,什么是最好的做法。
奥利弗的答案略有扩展(不容易添加为评论)。要改变的Checkstyle规则,不再检查“工厂”,把CheckStyle的配置XML文件中的以下内容:
<module name="AbstractClassName">
<property name="format" value="^Abstract.*$"/>
</module>
进一步详情,请参阅here。
感谢您的回答。我认为这也是第一个这个规则的原因。但是'抽象工厂'设计模式总是需要一个具体的工厂(抽象工厂界面的实现)。从链接示例中可以看出,具体工厂的名称也以_Factory_结尾,导致被标记为违规。 – gumble42 2012-03-23 08:34:09