美文网首页学习设计模式
2,策略模式(strategy)

2,策略模式(strategy)

作者: Kenny丶Mo | 来源:发表于2017-09-21 15:13 被阅读9次

1,定义

策略模式,它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户,

2,具体的代码的实现以及UML图

策略模式.png
//这是标记的符号  ````

using UnityEngine;
using System.Reflection;
using StrategyMode;

public class strategyMode : MonoBehaviour
{
    void Start()
    {
        Context context = new Context("B");
        context.GetResult();
    }
}

// factory and strategy and reflection        
namespace StrategyMode
{
    public abstract class Strategy
    {
        public abstract void AlgrithmInterface();
    }

    public class ConcreteStrategyA : Strategy
    {
        public override void AlgrithmInterface()
        {
            Debug.Log("ConcreteStrategyA");
        }
    }

    public class ConcreteStrategyB : Strategy
    {
        public override void AlgrithmInterface()
        {
            Debug.Log("ConcreteStrategyB");
        }
    }

    public class ConcreteStrategyC : Strategy
    {
        public override void AlgrithmInterface()
        {
            Debug.Log("ConcreteStrategyC");
        }
    }

    public class Context
    {
        private Strategy Strategy;

        //  strategy mode only

        //public Context(Strategy strategy)
        //{
        //    this.Strategy = strategy;
        //}


        //  strategy mode and factory mode

        //  use reflection need 

        public Context(string name)
        {
            Strategy = (Strategy)(Assembly.Load("Assembly-CSharp").
                                  CreateInstance("StrategyMode.ConcreteStrategy" + name));
        }

        public void GetResult()
        {
            Strategy.AlgrithmInterface();
        }
    }
}

3,关于策略模式的思考

策略模式是一种定义一系列算法的方法,从概念上看,所有的算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法与使用算法类之间的耦合。
策略模式不仅可以用来封装算法,也可以用来封装任何类型的规则,适用于处理需要在不同的阶段应用不同的业务规则的情况。

4,关于策略模式和简单工厂模式的区别的思考

简单工厂模式更加强调的是对象的创建,利用创建的对象去执行操作
策略模式更加强调的是通过不同的算法得到不同的结果,强调使用不同i的规则或者算法。通过context得到结果,而不是实际的对象。

相关文章

  • 王者荣耀之「策略者模式」

    目录 什么策略模式(Strategy)1.1 Strategy模式的定义1.2 为什么用Strategy模式,他的...

  • 零、目录

    1、策略模式(Strategy Pattern) 2、观察者模式(Observer) 3、装饰者模式(Decora...

  • 2,策略模式(strategy)

    1,定义 策略模式,它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法...

  • 策略模式 -- 整体的替换算法

    1. 概述 所谓“策略”(strategy),即程序中的“算法”。策略模式(strategy pattern)可以...

  • 设计模式[13]-策略模式-Strategy Pattern

    1.策略模式简介 策略模式(Strategy Patter)是行为型(Behavioral)设计模式,策略模式封装...

  • 设计模式-策略模式

    设计模式-策略模式 定义 策略模式(Strategy Pattern)也叫政策模式(Policy Pattern)...

  • 设计模式之策略模式

    策略模式 Strategy Intro 策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可...

  • 策略模式(Strategy pattern)

    策略模式的定义与特点 定义:策略模式(Strategy Pattern)又叫政策模式(Policy Pattern...

  • iOS 设计模式-策略模式

    1.策略模式简介   策略模式(Strategy Pattern),是行为型模式之一(设计模式分类:https:/...

  • 行为型-Strategy

    策略模式的原理与实现 策略模式的原理与实现策略模式,英文全称是 Strategy Design Pattern。在...

网友评论

    本文标题:2,策略模式(strategy)

    本文链接:https://www.haomeiwen.com/subject/cbjzsxtx.html