责任链模式(属于行为型模式)
1 很好理解,就是一个东西传下来,遇到合适的处理对象,才进行处理
2 重点:有多个处理者,这些处理者继承同一类;每个处理者有它的下一级处理者;当然每个的下一级是串联在一起的
public class Mobile
{
public Mobile nextMobile;
public Level mobileLevel;
public Mobile()
{
nextMobile = new Honour();
mobileLevel = Level.None;
}
public virtual void Call() { }
public void CallSomeOne(Level level)
{
if (mobileLevel >= level)
{
this.Call();
}
else
{
nextMobile.Call();
}
}
}
public enum Level
{
None = 0,
Low = 1,
Middle = 2,
High = 3
}
public class Honour : Mobile
{
public Honour()
{
nextMobile = new Note();
mobileLevel = Level.Low;
}
public override void Call()
{
Console.WriteLine("call someone with honour ");
}
}
public class Meta : Mobile
{
public Meta()
{
mobileLevel = Level.High;
nextMobile = new Meta();
}
public override void Call()
{
Console.WriteLine("Call someone with Meta");
}
}
public class Note : Mobile
{
public Note()
{
nextMobile = new Meta();
mobileLevel = Level.Middle;
}
public override void Call()
{
Console.WriteLine("Call someone with Note");
}
}
public class MobileUser
{
public static void CallSomeone()
{
Mobile phone = new Mobile();
phone.CallSomeOne(Level.Middle);
}
}