概述:
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 策略模式
{
public interface IFlyBehavior
{
void Fly();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 策略模式
{
public class FlyNoWay:IFlyBehavior
{
public void Fly()
{
Console.WriteLine("I can't fly");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 策略模式
{
public class FlyWithWings:IFlyBehavior
{
public void Fly()
{
Console.WriteLine("I'm flying!!");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 策略模式
{
public class MallarDuck:Duck
{
public MallarDuck()
{
base.iFlyBehavior = new FlyWithWings();
}
public override void Display()
{
Console.WriteLine("I'm a real Mallard duck");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace 策略模式
{
class Program
{
static void Main(string[] args)
{
Duck mallarDuck = new MallarDuck();
mallarDuck.PerformFly();
Console.ReadKey();
}
}
}