标签:src OLE 设计 code static class main ima com
鸭子基类 将行为封装起来
class 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(); } }
标签:src OLE 设计 code static class main ima com
原文地址:https://www.cnblogs.com/Steven-Song/p/9570276.html