01.策略模式-上篇

简介: 01.策略模式-上篇


阅读目录

原文地址:01.策略模式-上篇

概述:

策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

回到顶部

1.定义飞行行为接口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 策略模式
{
    public interface IFlyBehavior
    {
        void Fly();
    }
}

 

回到顶部

2.定义飞行行为,继承飞行行为接口

(1)FlyNoWay不会飞

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");
        }
    }
}

(2)FlyWithWings会飞,用翅膀

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!!");
        }
    }
}

 

回到顶部

3.定义绿头鸭MallarDuck,继承Duck类

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");
        }
    }
}

 

回到顶部

4.主程序

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();
        }
    }
}

回到顶部

5.源代码下载

    【设计模式】01.策略模式-上篇.zip




相关文章
|
7月前
|
设计模式 Java
细说一下设计模式中的策略模式!
细说一下设计模式中的策略模式!
57 0
|
7月前
|
设计模式 Java 测试技术
浅谈设计模式 - 责任链模式(十四)
浅谈设计模式 - 责任链模式(十四)
72 0
|
7月前
|
设计模式 Java 数据安全/隐私保护
Java设计模式【二十三】:策略模式
Java设计模式【二十三】:策略模式
66 0
|
7月前
|
设计模式 算法
设计模式--策略模式(由简单工厂到策略模式到两者结合图文详解+总结提升)
设计模式--策略模式(由简单工厂到策略模式到两者结合图文详解+总结提升)
|
设计模式 监控 算法
策略模式极简教程
策略模式(Strategy Pattern)是一种软件设计模式,属于行为型设计模式。 一般的,如果程序中存在对同一个场景做不同的业务处理实现的时候可以考虑使用策略模式。 使用策略模式编排代码可以解决 if-else 带来的代码复杂度高、易读性差,难以维护的问题。
95 0
策略模式极简教程
|
设计模式 Java 数据安全/隐私保护
二十三天搞懂设计模式之工厂模式
二十三天搞懂设计模式之工厂模式
二十三天搞懂设计模式之工厂模式
|
设计模式 Go
二十三天搞懂设计模式之抽象工厂模式
二十三天搞懂设计模式之抽象工厂模式
二十三天搞懂设计模式之抽象工厂模式
|
设计模式 算法
【设计模式】 | 策略模式源码学习与实践
在业务开发中,我们最经常使用到的判断就是if...else,只要涉及到多种策略的实现方式,我们脑海中就会使用这个判断。
|
设计模式 算法
二十三种设计模式之策略模式
二十三种设计模式之策略模式
149 0
|
设计模式 算法
设计模式(十一)之模板方法模式
模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
140 0
设计模式(十一)之模板方法模式