インターフェイスの命名規則

インターフェイスに対する命名規則を紹介します。その他にも traitabstract class にも利用可能な命名規則です。

動詞 + -able

インターフェイスの振る舞いに該当する動詞に -able を付けて、『○○ することができる』という名前を付けることがあります。 インターフェイスを実装したオブジェクトは、『○○ することができる』という振る舞いをすることが期待されます。

名前意味
IEnumerable<T>列挙することができる (foreach でループできる)
IObservable<T>観測することができる (Reactive Extensions)

名詞

インターフェイスを実装した際に期待される振る舞いが何かモノを指している場合にはその名詞をインターフェイス名として利用します。 インターフェイス名を名詞にした場合は、実装されるオブジェクト名には実装に関する情報が付与されることが多いです。

名前意味
IList<T>リストの様に振る舞うオブジェクト
IDictionary<TKey,TValue>辞書の様に振る舞うオブジェクト

名詞 + Like

インターフェイスの振る舞いに該当する名詞を実装した class の側に利用したい場合には、インターフェイス側の後ろに Like を付ける場合があります。 インターフェイス名に Like を付ける場合は、実装されるオブジェクト名に名詞単体が付けられることが多いです。

名前意味
MapLike[K, V, This]マップの様に振る舞うオブジェクト

実装が先にあり、後からインターフェイスを追加する様な場合でなければ名詞のみを利用したほうが良いです。

参考資料