您的位置:首页 > 其它

设计模式-策略模式

2014-09-27 11:54 211 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharp
{
class Program
{
public abstract class Duck
{
protected FlyBehavior    flyBehavior;
public FlyBehavior _FlyBehavior
{
get
{
return flyBehavior;
}
set
{
flyBehavior = value;
}
}

public Duck() { }
public abstract void Display();
public void PerformFly()
{
flyBehavior.Fly();
}
}

public interface FlyBehavior
{
void Fly();
}

public class FlyWithWings: FlyBehavior
{
public void Fly()
{
Console.WriteLine("I am flying!");
}
}
public class FlyNoWay: FlyBehavior{
public  void Fly()
{
Console.WriteLine("I cannot fly!");
}
}

public class SimpleDuck :  Duck
{
public SimpleDuck()
{
flyBehavior = new FlyWithWings();
}
public override void Display()
{
Console.WriteLine("I just a duck!");
}
}

public static void Test()
{
Duck simpleDuck = new SimpleDuck();
simpleDuck.Display();
simpleDuck.PerformFly();
simpleDuck._FlyBehavior = new FlyNoWay();
simpleDuck.PerformFly();
}
static void Main(string[] args)
{
Test();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: