美文网首页
behavior:策略模式 strategy

behavior:策略模式 strategy

作者: 柳源居士 | 来源:发表于2019-02-11 15:16 被阅读0次

策略模式:
将一组特定的行为和算法封装成类。该类在不同的环境下,需要有不同的实现算法。也就是针对不同的事物情形,使用不同的方法。
比如网络小说阅读器的书单推广,根据不同性别用户推荐不同的算法。又或者网站根据浏览用户的不同,推送不同的商品。
策略模式的好处:

  1. 将逻辑与算法解耦。
  2. 依赖于接口,可以更好的组织公共代码,并且使用继承的话,可以将公共代码转移到父类里面,降低复杂度。
  3. 传统编码是使用大量的if else 判断,使用策略模式可以有效降低程序的多层选择。
  4. 实现IOC,倒置依赖,控制反转。业务逻辑需要的类由程序判断后初始化并传入,因为具体业务逻辑不需要初始化特定的类。
    缺点:
  5. 程序必须知道所有的算法。
  6. 算法会越来越多。

实现:

  1. 使用策略接口来约束行为。
  2. 新策略继承接口,并完成自身算法。
  3. 调用者根据情况分析使用何种策略。
package strategy;

public interface BookStrategy {

    public String selectBook();

}

package strategy;

public class FemaleBookStrage implements BookStrategy {
    @Override
    public String selectBook() {
        return "言情";
    }
}

package strategy;

public class MaleBookStrategy implements BookStrategy{
    @Override
    public String selectBook() {
        return "玄幻";
    }
}


package strategy;

public class TestStrategy {
    public static void test(String sex){

        switch (sex){
            case "male":
                System.out.println(new MaleBookStrategy().selectBook());
                break;
            case "famale":
                System.out.println(new FemaleBookStrage().selectBook());
                break;
            default:
                System.out.println("we dont know");
        }


    }
}

相关文章

  • behavior:策略模式 strategy

    策略模式:将一组特定的行为和算法封装成类。该类在不同的环境下,需要有不同的实现算法。也就是针对不同的事物情形,使用...

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

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

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

    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。在...

  • 策略模式优化 if else

    策略模式 什么是策略模式? 策略模式的定义与特点 策略(Strategy)模式的定义:该模式定义了一系列算法,并将...

网友评论

      本文标题:behavior:策略模式 strategy

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