1. ホーム

[解決済み】Javaでのインターフェース命名について【終了しました

2022-03-25 11:52:14

質問

ほとんどのOO言語では、インターフェイス名の前に大文字のIを付けますが、なぜJavaはそうしないのですか? この慣習に従わない根拠は何ですか?

もし私がユーザー・インターフェースとユーザー・インプリメンテーションを持ちたかったら、Javaでは2つの選択肢がある、ということを示すために。

<ブロッククオート
  1. クラス = ユーザー、インターフェース = ユーザーインターフェース
  2. クラス = UserImpl, インタフェース = User

ほとんどの言語での場所。

<ブロッククオート

クラス = ユーザー、インターフェース = IUser

しかし、Java は POJO アプローチを推進しており、ほとんどの IOC コンテナでは DynamicProxies が広く使用されています。 この2つを合わせると、1つのPOJO実装で多くのインターフェイスを持つことになります。

つまり、私の質問は、以下のようなことに集約されると思います。 特にJava Frameworksの方向性を考慮すると、より広いInterface命名規則に従う価値があるでしょうか。

どのように解決するのか?

インターフェースにプレフィックスを使用しない方が良い。

  • 接頭辞は可読性を損なう。

  • クライアントでインターフェイスを使用することは、プログラミングの標準的な最良の方法なので、インターフェイス名はできるだけ短くて快適であるべきです。実装クラスは、その使用を思いとどまらせるために、より醜いものであるべきです。

  • 抽象クラスからインターフェースに変更する場合、接頭辞 I を持つコーディング規約は、そのクラスのすべての出現箇所をリネームすることを意味します --- 良くないことです!