[英]How can i tackle State Pattern with Singleton pattern in one class
我正在使用.NET
框架练习编程,我真的很困惑Singleton pattern
和State pattern
。 我尝试使用单例模式进行工作,现在如何对同一个类实现状态模式。 我的代码是BankAccount
,它具有自动实现的属性,即AccountStateID
public class BronzeState : AccountStates
{
//static member
private static BronzeState bronzeState;
//constructor
private BronzeState()
{
this.LowerLimit = 0;
this.UpperLimit = 5000;
this.Rate = 0.01 / 100;
}
public static BronzeState GetInstance()
{
if (bronzeState != null)
return bronzeState;
else
{
bronzeState = new BronzeState();
return bronzeState;
}
}
public void StateChangeCheck(BankAccount bankAccount)
{
if (bankAccount.Balance > UpperLimit)
{
bankAccount.AccountState = new SilverState();
}
}
}
//same goes with GoldSte , SilverState, PlatinumState.
我唯一的问题是如果余额超过上限,我如何使用状态模式来改变状态。
如果从AccountStates
继承的所有类都是单例,您是否在问如何将BankAccount
类的AccountState
属性设置为不同的状态? 如果是,并且您使用了与上述相同的模式,则:
public void StateChangeCheck(BankAccount bankAccount)
{
if (bankAccount.Balance > UpperLimit)
{
bankAccount.AccountState = SilverState.GetInstance();
}
}
另外,如果您有兴趣了解有关单例线程安全实例化的更多信息,请查看MSDN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.