zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    高中信息技术《算法与程序设计VB(选修)》知识要点
    信息技术选修一总结
    文学给人以相爱的力量
    雾霾
    杯子
    递归
    死锁
    高精度计算练习1
    高精度加法的优化
    字符串函数与过程
  • 原文地址:https://www.cnblogs.com/jackson0714/p/4827352.html
Copyright © 2011-2022 走看看