iOS设计模式之Strategy(策略模式)

作者: 大兵布莱恩特 | 来源:发表于2018-06-14 20:43 被阅读43次

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

image.png image.png

有点类似于我们玩是 CS 枪战,不管你用 1 机枪 2 手枪 3小刀 4 手雷 ,到角色身上的永远是一个字干,点击鼠标左键,老夫写代码上去就是一梭子,不管你怎么实现的.

image.png

接下来我将会用 C++ 代码去模拟我们玩 CS 过程中 武器 (策略) 角色之间的关系


#include <iostream>

using namespace std;

///武器类
class Weapon {
public:
    virtual void use() = 0;
};
///小刀类
class Knife : public Weapon {
public :
    void use() {
        cout<<"use knife kill you" << endl;
    }
};
///机枪类
class Gun : public Weapon {
public:
    void use() {
        cout<<"use gun kill you"<<endl;
    }
};

///角色类
class Sprite {

public:
    ///人物一开始就有把抢
    Sprite(Weapon *we) {
        _weapon = we;
    }
    ///切换武器
   void setWeapon(Weapon *we) {
       _weapon = we;
   }
   ///老夫写代码上去就是一梭子 一个字干
   void fight() {
       _weapon->use();
   }

 private :
   Weapon *_weapon;
};

int main(int argc, char *argv[])
{

    Knife k;
    Gun g;
    Sprite sp = Sprite(&g);
    sp.fight();

    sp.setWeapon(&k);
    sp.fight();

    sp.setWeapon(&g);
    sp.fight();


    return 0;
}



image.png

iOS 中NSArray的 sortedArrayUsingComparator 排序方法其实就是一种策略模式

image.png

定义了一个公共的接口, 根据业务场景需要 传不同的策略进来,就会实现升序 ,降序 ,甚至是逆置数组元素等不同的操作.

相关文章

  • 简说设计模式之策略模式

    前言:对于设计模式基础概念可以去看[简说设计模式之设计模式概述] 一、什么是策略模式 策略(Strategy)模式...

  • 策略模式

    本文参考自: 《JAVA设计模式》之策略模式(Strategy) 1. 作用 策略模式属于对象的行为模式。其用意是...

  • 设计模式-策略模式

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

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

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

  • Java设计模式之策略模式

    Java设计模式之策略模式 简介 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行...

  • iOS设计模式之Strategy(策略模式)

    策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独...

  • iOS设计模式之策略(strategy)模式

    1、定义 定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 ...

  • iOS 设计模式-策略模式

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

  • 设计模式之策略模式(Strategy)

    1. 什么是策略模式? 策略模式 定义了算法族,分别封装起来, 让它们之间可以互相替换,此模式让算法的变化独立于使...

  • 设计模式之策略模式(Strategy)

    概述 写代码时总会出很多的if…else,或者case。如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃...

网友评论

    本文标题:iOS设计模式之Strategy(策略模式)

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