-3

コード レビューで、次のメソッド ペアを含むクラスに直面しています。

getOrCreateXXXFor(YYY)
getXXXFor(YYY)

(XXX と YYY は 2 つのビジネス ロジック タイプです。) これらが理想的な名前かどうかはわかりません。

1 つ目は確かに Singleton パターンに関連していますが、パラメーターと

  • オブジェクトが存在するか、または
  • 存在しない場合は作成して返します。

2つ目

  • 最初のメソッドと同じオブジェクトを返しますが、それが存在する場合のみです
  • Exceptionが存在しない場合はをスローします。

改名するかどうか検討中です。より良い提案はありますか?


[編集] より具体的には:

  • 名前は、何が起こるかを短く簡潔に説明する必要があります (ドキュメントを読む必要はありません)。
  • 2 つのメソッドの関係は、名前によって保持する必要があります

つまり、クリーンな API になるはずです。物事にわかりやすい名前を付けることは、ソフトウェア クラフトマンシップの中心的な部分です。このトピックは、配列の並べ替えと同じくらい意見に基づくものではありません。

4

1 に答える 1

2

Singleton-Patternおよび/またはFlyweight-Patternを見てください

Singleton として実装し、exists メソッドを提供することをお勧めします。

public class SingletonDemo {
    private static volatile SingletonDemo instance = null;

    private SingletonDemo() {       }

    public static SingletonDemo getInstance() {
            if (instance == null) {
                    synchronized (SingletonDemo .class){
                            if (instance == null) {
                                    instance = new SingletonDemo ();
                            }
                    }
            }
            return instance;
    }

    public boolean exists() {
        return instance != null;
    }
}
于 2013-10-30T14:58:20.797 に答える