Java言語における命名方法
ここではJava言語におけるクラス・メソッド等の命名方法についての整理して(しようととして?)います。
注:ここに示す命名の仕方は、ルールではありません。あくまでも、命名時の参考資料という位置づけです。以下のような命名方法を知っていると、オープンソースのプログラムなどを読む際などに、クラスの役割を推測しやすくなると思います。
Java言語における命名方法
パッケージ名の場合
- util
- ユーティリティクラスを持つパッケージに使用。ユーティリティクラスとそのヘルパークラスを含む。
クラス名・インターフェイス名の場合
接頭辞
- Abstract~
- 抽象クラスの命名に使用。一般的に使用せず、インターフェイスやクラスと名前が重複する場合に使用することが多い。
- Mock~
- 検査用の模擬(モック)クラスに使用する。
- Test~
- JUnitのテストケースの実装クラスに使用。junit.framework.TestCaseを基底クラスに持つ。
接尾辞
- ~Applet
- アプレットの実装クラスに使用。java.applet.Appletを基底クラスに持つ。
- ~Bean
- JavaBeanのクラスに使用。
- ~Comparator
- コンパレータクラス(コレクションの要素を比較するメソッドを実装するクラス)に使用。java.util.Comparatorを実装する。
- ~Constants
- 定数の定義を行うインターフェイスに使用。一般的にメソッドは持たない。
- ~Event
- Callbackメソッドの引数に使用するクラスに使用。
- ~Exception
- 例外のクラスに使用。java.lang.Exceptionを基底クラスに持つ。
- ~Factory
- Factoryクラスに使用。インスタンスを作成する為の、new~、create~というメソッドを持つ。
- ~Filter
- 何らかの処理への入力・出力を加工するメソッドを持つインターフェイスやその実装クラスに使用する。
- ~Formatter
- 指定したフォーマットにあわせて出力の生成を行うメソッドを持つクラスに使用。出力内容を引数に持つformatメソッドを持つことが多い。
- ~Home
- EJBのHomeインターフェイスに使用。
- ~Imp、~Impl
- 抽象クラスに対する実装クラスに使用。一般的に~の部分と同名の抽象クラスが存在する場合に使用する命名方法。
- ~Iterator
- コレクションクラスの反復子(イテレータ)に使用する。
- ~Listener
- イベント発生時に呼び出される(callbackされる)メソッドを持つインターフェイスやその実装クラスに使用。一般的に、定義されるCallbackメソッドの引数には「~Event」クラスを持つ。
- ~Logger
- ログ出力用クラスに使用する。
- ~Plugin
- 何かの機能を拡張するプラグインを定義するインターフェイスやその実装クラスに使用する。
- ~Servlet
- Javaサーブレットの実装クラスに使用。javax.servlet.GenericServletを基底クラスに持つ。
- ~Tag
- カスタムタグの実装クラスに使用。javax.servlet.jsp.tagext.Tagを実装する。
- ~Test
- JUnitのテストケースの実装クラスに使用。junit.framework.TestCaseを基底クラスに持つ。
- ~Utils
- ユーティリティクラスに使用。一般的に、全メンバがstatic属性で、コンストラクタはprivate。utilパッケージの中にあることが多い。
メソッド名の場合
接頭辞
- can~
- canの後に続く動作が可能かどうかを返却するメソッドに使用。戻り値はboolean。
- create~
- クラスのインスタンスを作成するメソッドに使用。
- get~
- getterのアクセサメソッドに使用。
- is~
- boolean型のgetterのアクセサメソッドに使用。戻り値はboolean。
- set~
- setterのアクセサメソッドに使用。
- new~
- クラスのインスタンスを作成するメソッドに使用。