public class MusicFactory
{
private State state; // 状态,通过设置这个状态来产生不同的事情,State类是个接口,方法是不同实现的小弟
public void ProduceMusic()
{
state.ProduceMusic();
}
public void SetState(State state)
{
this.state=state;
}
}
//状态接口
public interface State
{
void ProduceMusic();
}
// 具体的状态类
public class BirdSingingState :State
{
public void ProduceMusic()
{
Console.WriteLine("Bird produce sound");
Console.Read();
}
}
使用:
public static void Main()
{
BirdSingingState birdSing = new BirdSingingState();
MusicFactory musicFac = new MusicFactory();
musicFac.SetState(birdSing);
musicFac.ProduceMusic();
}
///output "Bird produce sound"