インターフェイスはタイプを定義するためにのみ使用されます

クラスがインターフェースを実装する場合、タイプとしてのインターフェースを使用して、クラスのインスタンスを参照できます。したがって、クラスはインターフェースを実装し、クライアントがクラスのインスタンスを処理する方法を示します。他の目的でインターフェースを定義することは適切ではありません。

失敗するインターフェースの1つのタイプは、いわゆる定数インターフェースです。このようなインターフェイスにはメソッドは含まれず、静的な最終プロパティのみが含まれ、出力ごとに定数が含まれます。これらの定数を使用するクラスは、クラス名で定数名を修飾する必要をなくすためにインターフェースを実装します。次に例を示します。

ublicインターフェイスPhysicalConstants { 
    
    static final double AVOGADROS_NUMBER = 6.022_140_857e23; 

}

  定数インターフェイスモードは、インターフェイスの不適切な使用です。クラスは内部でいくつかの定数を使用します。これらは完全な実装の詳細です。定数インターフェイスを実装すると、この実装の詳細がクラスエクスポートAPIにリークします。クラスのユーザーにとって、定数インターフェイスを実装しても意味がありません。実際、それらを混乱させることさえあるかもしれません。さらに悪いことに、それは約束を表しています。クラスが将来のバージョンで変更され、定数を使用する必要がなくなった場合でも、バイナリ互換性を確保するためにインターフェイスを実装する必要があります。非finalクラスが定数インターフェースを実装する場合、そのすべてのサブクラスの名前空間は、インターフェースの定数によって汚染されます。

おすすめ

転載: www.cnblogs.com/lIllIll/p/12702795.html