如果你需要管理一群不同類型的物件,並希望在程式中這些物件在取得時都是單例,你可以使用Register of Singleton模式。在Java中若要實現Register of Singleton模式,可以使用Reflection機制 來達成. 底下是範例代碼 :
程式撰寫需透過 SingletonRegistry 的getInstance()來取得所需之物件,SingletonRegistry維持唯一的一個註冊表,註冊表使用Map實現,若註冊表中已有所需之物件就直接傳回,從而保證透過SingletonRegistry的getInstance()所取得的都是單例. 如果不使用Reflection或Introspection機制的話,則可以提供一個註冊方法, 範例代碼如下 :
註冊的時機可以是在建構物件之時,例如 :
- public class Some {
- public Some() {
- //...
- SingletonRegistry.register(Some.class.getName(), this);
- }
- }
- Some some = new Some();
- SingletonRegistry.register(Some.class.getName(), some);
沒有留言:
張貼留言