2012-03-22 21 views
4

のCheckstyleの「AbstractClassName」のチェックが抽象として宣言されなければならないクラス名を確認するには、次のデフォルトのパターンを使用してで終わる低迷クラスの理由:のCheckstyle AbstractClassNameチェック:「ファクトリー」

^Abstract.*$|^.*Factory$ 

私がいることを理解して'Abstract'で始まるクラスは抽象クラスとして宣言されています。しかし、なぜこれも「ファクトリー」で終わるクラスにも当てはまるはずですか?

これは本当にベストプラクティスですか?もしそうなら、代わりに私の工場クラスに名前を付けるべきですか?

答えて

4

デフォルトの正規表現は、抽象ファクトリパターンから来ています。http://www.apwebco.com/gofpatterns/creational/AbstractFactory.htmlを参照してください。

私は野生のにこのような命名規則が使用されていることを認めます。常に、Checkstyleのがベストプラクティスであるものになどガイドとして使用すべきであると同様

^Abstract.*$ 

:パターンを使用するために、チェックの設定を変更することは簡単なことです。

+1

お返事ありがとうございます。私はこれもこのルールの最初の理由であると想定していました。しかし、「抽象ファクトリ」デザインパターンでは、常に抽象ファクトリのインターフェイスの実装である具体的なファクトリが必要です。リンクされた例に見られるように、具体的なファクトリの名前も_Factory_で終わり、違反としてフラグが立てられます。 – gumble42

2

Oliverの回答が少し拡大しました(コメントとして追加するのは簡単ではありません)。もはやへのCheckstyleのルールを変更するにはCheckstyle構成XMLファイルに次のように入れて、「工場」をチェック:

<module name="AbstractClassName"> 
    <property name="format" value="^Abstract.*$"/> 
</module> 

は詳細についてhereを参照してください。

関連する問題