クラス名の付け方

名前を示す・イメージ画像
クラス名を名詞にすると、クラスの役割を「分類している感じ」がします。よって、わかりやすいと思います。
例えばMIDIシーケンスを作成する、というクラスの名前について、
「作成する・Make」を「作る人・Maker」という名詞にして、名前を付けます。
例:
MidiSequenceMaker クラス。
「MIDIシーケンスを作る人」クラス。
動詞のメソッド名
クラス名を名詞にした場合、クラスのメソッド名を動詞にすると、クラス名とメソッド名が一つの文のように「まとまった感じ」になります。
次のようなメソッド名の場合、
saveMidiFile( … )メソッド。
「MIDIファイルを保存する」メソッド。
「クラス名とメソッド名の繋がり」は、次のようになります。
MidiSequenceMaker . saveMidiFile( … )
「MIDIシーケンスを作る人」が、「MIDIファイルを保存する」。
名詞(主語)+ 動詞(述語)となり、一つの「文のような感じ」がします。少し強引な意見かもしれませんが、「英語の一文のような感じ」となります。
※この見出しの記事は、2003年6月当時の記事になります。
クラス名にパッケージ名を含める事
もしもクラス名にパッケージ名を含めなくても、クラス名が表す意味がわかりやすい場合は、クラス名にパッケージ名を含めないほうが良い、と思います。
クラス名にパッケージ名を含めると、クラス名自身がパッケージ名の情報も持つことになります。
ですがそのように、クラス名自身がパッケージ名の情報も持つことについて、利点がある場合はそれほど多くないと思います。それほど意味はなく、単にクラス名が長くなっただけ、という場合が多いと思います。
名前の付け方の例
例として、掲示板プログラムのログイン処理をするクラス名について、名前の付け方を考えます。
「パッケージ名」で、「掲示板という情報」を示します。
「クラス名」で、「ログイン処理という情報」を示します。
次の2通りのクラス名を考えます。
クラス名その1 | board . LoginAction | 「掲示板」の「ログイン処理」 |
クラス名その2 | board . BoardLoginAction | 「掲示板」の「掲示板ログイン処理」 |
通常は(その1)の掲示板のログイン処理で、わかりやすいと思います。
(その2)のように、掲示板の掲示板 …… という風に、繰り返す必要は少ないと思います。
よってログイン処理のクラス名に、掲示板というパッケージ名を示す単語Boardを含めず、LoginActionだけで良いと思います。
もしもプログラム中で、ログイン処理だけでなくて、「掲示板のログイン処理」という風に、掲示板を強調した書き方をしたい場合は、パッケージ名とクラス名を書けば良いと思います。
例:
board . LoginAction action = new board . LoginAction();
パッケージ名を含めている例
もちろんプログラムを書く人が、クラス名にパッケージ名を含めたほうが「わかりやすい」と判断した場合は、クラス名にパッケージ名を含めても良いと思います。
以下、クラス名にパッケージ名を含めている例です。
javax . servlet . http . HttpServletRequest | サーブレットの「http」の「Httpサーブレットリクエスト」 |
※この見出しの記事は、2004年7月当時の記事になります。
サブクラス名の付け方

名前を示す・イメージ画像
サブクラス名の付け方についてです。
サブクラス名の付け方の例として、サブクラス名を
「サブクラスの役割名 + スーパークラス名」
にすると、わかりやすいと思います。
名前の付け方の例
以下にサブクラス名の付け方について、例を書きます。
public class PostAction extends Action { .... }
この場合、スーパークラス名はActionです。
このアクションという名称は、ユーザのマウス操作などに対する処理を行なうことを、示しています。
参考:java.awt.event.ActionListenerのActionと似ている、と思います。
サブクラスの役割名は、Postです。
これは、投稿(メッセージ投稿)という役割を示します。
サブクラス名を「サブクラスの役割名 + スーパークラス名」とすることによって、投稿に関係するマウス操作の処理を行なうクラスだろうと、推量できるでしょう。
参考:ここではPostという単語が、掲示板に「メッセージを投稿する事」を示すと考えました。ですが実際の英会話で、そうであるかどうか、よくわかっておりません。
※この見出しの記事は、2003年6月当時の記事になります。