java version 1.7.0_65
シングルトン デザイン パターン クラスがあります。これにより、最初に作成されたものと同じインスタンスが常に返されます。
ただし、私が抱えている問題は、このクラスが別のクラスから他の多くのオブジェクトを作成する必要があることです。これにはコンポジションを使用しました( のPOI
クラスのインスタンスArlabFacade
)。このシングルトン インスタンスから、クライアントは多くの POI オブジェクトを作成できるはずです。また、POI クラスの内部動作を公開したくありません。すべてがシングルトン インスタンスを通過する必要があります。
private static ArlabFacade mArlabFacade = null;
private POI mPoi; /* Should be able to create many object of this class */
private ArlabFacade(Context context) {
/* initialize properties */
mContext = context;
mPoi = null;
}
public static ArlabFacade getInstance(Context context) {
/* Create a synchronised singleton instance */
ReentrantLock lock = new ReentrantLock();
lock.lock();
if(mArlabFacade == null) {
mArlabFacade = new ArlabFacade(context);
}
lock.unlock();
return mArlabFacade;
}
私はこのようなことを試みましたが、2つの問題があります。
1) I don't want to return the class instance of POI
2) because I only have a single instance the mPoi will be overwritten by the next client call to this function.
この関数は単に上書きします:
public POI createNewPOI() {
return mPoi = new POI();
}
この問題に対処する設計パターンはありますか?