使用靜態類不會帶來大問題,但是單例模式可能適合在這種情況下更好。
public class RegistrationConfig {
// private static instance
private static RegistrationConfig _instance = new RegistrationConfig()
// private constructor prevents the class from being instantiated from outside
private RegistrationConfig() { }
// instance public accessor
public static RegistrationConfig Current { get { return _instance; } }
public int InvitationToken { get; set; }
public int InvitationDollar { get;set; }
}
消費:
var credit = new Credit();
credit.Token = RegistrationConfig.Current.InvitationToken;
這方面的一個變化是不是實現了單件模式,但保留.Current訪問並定義一個公共setter方法,這樣你就可以更改活動配置。
public class RegistrationConfig {
// current
private static RegistrationConfig _current;
// instance public accessor
public static RegistrationConfig Current { get { return _current; } }
// public setter
public static void SetCurrent(RegistrationConfig current)
{
_current = current;
}
public int InvitationToken { get; set; }
public int InvitationDollar { get;set; }
}
然後,在應用程序啓動時,您將設置配置。
RegistrationConfig.SetCurrent(new RegistrationConfig() { ... });
和消費:
credit.Token = RegistrationConfig.Current.InvitationToken;
的好處是,你可以創建與預定義值情況下使用,例如,在單元測試。
我說這很奇怪。我不明白。重點是什麼?爲什麼不簡單地創建一個InvitedRegistrationGift的實例? – devundef 2012-08-06 19:01:54
的意圖是隻在一個地方存儲被邀請的註冊禮品,並且在將來每當我需要改變時,讓我們說一下,我可以在一個地方做到這一點。 – 2012-08-06 19:06:15
但你只有一個禮物爲整個asp.net應用程序? – devundef 2012-08-06 19:07:53