StackOverflowで標準的なクラス/インターフェイスの名前付けの質問を見たり、このテーマに関する他の多くの 意見を読んだりしましたが、これらの場所のいずれかで答えられるかどうかわからない関連する質問があります。IInterfaceまたはClassImplの命名規則は不要であり(最新のIDEの場合)、コードが読みにくくなるため、嫌いになる傾向があります。多くの場合、これらの命名スキーマの1つを使用する必要があるということは、設計が正しくないことを意味しているようです。
ただし、APIの一部として(通常は別のパッケージで)公開したいインターフェイスがあるシナリオに遭遇することがよくあります。次に、インターフェイスの抽象的な実装を作成して、最も期待するいくつかの一般的な機能を含めます。 (すべてではありませんが)派生する具体的な実装。例えば:
public interface Foo {
public String getBar();
}
public abstract class BasicFoo implements Bar {
private String bar;
@Override
public String getBar() {
return bar;
}
}
実際には、実装名の前にBasicを付ける傾向がありますが、基本的には、基本/デフォルトの実装を提供するためにImplサフィックスを使用している人がいます。メモリストレージ(Barなど)にバックアップされたFooであることを意味する名前を試すことができますが、これは常にBasicFooのすべての機能をキャプチャします。また、インターフェイスが追加の柔軟性と分離を提供するため、インターフェイスを破棄して実装を直接公開する必要があるとは確信していません。
このシナリオを処理するためのより良い方法、または論理的な命名規則についての考えはありますか?