HeadFirst设计模式---策略模式 C#实现
2021-07-13 15:08
标签:src OLE 设计 code static class main ima com 鸭子基类 将行为封装起来 飞行行为基类 鸭鸣行为基类 不同行为的飞行 鸭鸣是同样的做法。 子类鸭子 主函数的调用方式 HeadFirst设计模式---策略模式 C#实现 标签:src OLE 设计 code static class main ima com 原文地址:https://www.cnblogs.com/Steven-Song/p/9570276.htmlclass Duck
{
protected IFlyBehavior flyBehavior;
protected IQuackBehavior quackBehavior;
public void PerformQuack()
{
quackBehavior.Quack();
}
public void PerformFly()
{
flyBehavior.Fly();
}
}
interface IFlyBehavior
{
void Fly();
}
interface IQuackBehavior
{
void Quack();
}
class FlyNoWay : IFlyBehavior
{
public void Fly()
{
Console.WriteLine("不会飞");
}
}
public class FlyWithWings : IFlyBehavior
{
public void Fly()
{
Console.WriteLine("飞");
}
}
class MallardDuck:Duck
{
public MallardDuck()
{
quackBehavior = new MuteQuack();
flyBehavior = new FlyWithWings();
}
}
class Program
{
static void Main(string[] args)
{
MallardDuck mallardDuck = new MallardDuck();
mallardDuck.PerformFly();
mallardDuck.PerformQuack();
Console.ReadKey();
}
}
上一篇:C#优化