【策略模式实现】

本文介绍了如何使用策略模式设计一个鸭子基类,允许后代拥有不同的飞行行为(如飞翔或无法飞行)和叫声(如呱呱、吱吱或无声)。通过接口IFlyBehavior和IQuackBehavior,实现类提供了灵活性和多样性。
摘要由CSDN通过智能技术生成

如何设计一个鸭子基类,并且后代可以不同的飞行模式和叫声

策略模式定义:
策略模式定义
用接口将Fly和Quack两个动作抽离出来,然后有各种实现类,对于具体的应用各种实现类

完整代码

namespace Quck
{
    public class Duck
    {
        public IFlyBehavior _iflybehavior;

        public IQuackBehavior _quackBehavior;


        public void Display()
        {
            Console.WriteLine("我是基类");
        }
        public void PerFormQuack()
        {
            _quackBehavior.Quack();
        }
        public void PerFormFly()
        {
            _iflybehavior.Fly();
        }
    }
    public interface IFlyBehavior
    {
        void Fly();
    }
    public class FlyWithWings :IFlyBehavior
    {
        public void Fly()
        {
            Console.WriteLine("我正在飞");
        }
    }
    public class FlyNoWay : IFlyBehavior
    {
        public void Fly()
        {
            Console.WriteLine("我不会飞啊~~");
        }
    }
    public interface IQuackBehavior
    {
        void Quack();
    }
    public class SayQuack :IQuackBehavior
    {
        public void Quack()
        {
            Console.WriteLine("呱呱");
        }
    }
    public class SayZhiZhi : IQuackBehavior
    {
        public  void Quack()
        {
            Console.WriteLine("吱吱");
        }
    }
    public class MuteQuack :IQuackBehavior
    {
        public void Quack()
        {
            Console.WriteLine(".....");
        }
    }
    public class MallardDuck :Duck
    {
        public MallardDuck(FlyWithWings flyWithWings,SayZhiZhi sayZhiZhi)/*12312412424212**/
        {
            _iflybehavior=flyWithWings;
            _quackBehavior=sayZhiZhi;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值