ほとんどの OO 言語では、インターフェース名の先頭に大文字の I が付けられますが、Java ではなぜそうしないのでしょうか。この規則に従わない理由は何でしょうか。
私の言いたいことを示すために、ユーザー インターフェイスとユーザー実装が必要な場合、Java では 2 つの選択肢があります。
- クラス = ユーザー、インターフェース = UserInterface
- クラス = UserImpl、インターフェース = User
ほとんどの言語では、
クラス = ユーザー、インターフェース = IUser
さて、ユーザー実装に最もわかりやすい名前を常に選択すれば問題はなくなると主張するかもしれませんが、Java は POJO アプローチを推進しており、ほとんどの IOC コンテナーは DynamicProxies を広範に使用しています。これら 2 つの要素を組み合わせると、単一の POJO 実装で多数のインターフェースが使用されることになります。
つまり、私の質問は、 「特に Java フレームワークの方向性を考慮すると、より広範なインターフェース命名規則に従う価値はあるか」ということに集約されると思います。
ベストアンサー1
インターフェースにプレフィックスを使用しないことを好みます。
接頭辞は読みやすさを損ないます。
クライアントでインターフェースを使用するのはプログラミングの標準的な最良の方法であるため、インターフェース名はできる限り短くてわかりやすいものにする必要があります。実装クラスは、使用を思いとどまらせるために醜いものにする必要があります。
抽象クラスからインターフェースに変更する場合、プレフィックス I の付いたコーディング規則では、クラスのすべての出現箇所の名前を変更することを意味します --- 良くありません!