设计模式22-策略模式,Strategy)

技术设计模式22-策略模式,Strategy) 设计模式22-策略模式(Strategy)策略模式的重点在于其实现可以去感知随意替换,根据不同的场景调用不同的实现。设计模式22-策略模式(Strateg

设计模式22-策略模式。

策略的重点是其实现可以随意替换,可以根据不同的场景调用不同的实现。

设计模式22-策略模式(Strategy)

概述

策略的重点是其实现可以随意替换,可以根据不同的场景调用不同的实现。

优点

算法可以自由切换。

避免多重条件判断。

扩展性好。

缺点

阶级扩张。

所有策略类都需要公开。

简单实现

JDK实现

策略需要设计一个接口,为一系列提供外部调用的策略模式实现类提供统一的方法。

界面策略{

/**

*打印邮件

*

* @param消息消息

*/

无效打印(字符串消息);

}

通过不同的实现提供不同的业务逻辑。

公共类正常策略实现策略{

@覆盖

公共无效打印(字符串消息){ 0

System.out.println(消息);

}

}

公共类错误策略实现策略{

@覆盖

公共无效打印(字符串消息){ 0

System.err.println(消息);

}

}

在不同的场景中,通过调用不同的实现类来完成不同的业务逻辑。

公共类设计模式

@测试

public void strategyDesignPattern(){ 0

字符串消息=“这是一条消息”;

strategy print strategy=new normal strategy();

printStrategy.print(消息);

print strategy=new error strategy();

printStrategy.print(消息);

}

}

源码解析

和状态模式的比较

模式封装了业务逻辑,业务逻辑被解耦。模式将业务逻辑封装成状态,状态之间存在切换关系,这可以在上下文或状态本身中实现。

该模式根据不同的业务场景切换不同的业务逻辑;模式通过在同一个场景中设置不同的状态来调用不同的业务逻辑。

策略业务逻辑的增加和删除不影响其他已有的业务逻辑;模式状态的添加和删除需要在其他状态实现中修改切换状态逻辑。

策略模式可以由客户端直接调用,状态模式必须由客户端通过有状态模型调用。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/53729.html

(0)

相关推荐

  • mysqldmulti创建管理多实例

    技术mysqldmulti创建管理多实例 mysqld_multi创建管理多实例#配置文件
    cat /etc/my.cnfEOF
    [client]
    socket=/tmp/mysql.sock[mysq

    礼包 2021年12月13日
  • 怎么解决数据库中的bash: warning: setlocale问题

    技术怎么解决数据库中的bash: warning: setlocale问题这篇文章主要讲解了“怎么解决数据库中的bash: warning: setlocale问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟

    攻略 2021年11月16日
  • 抖音播放量突然被限流降权是什么原因

    技术抖音播放量突然被限流降权是什么原因 抖音播放量突然被限流降权是什么原因抖音播放量突然被限流降权是什么原因本来发布的视频播放量都挺稳定的,但突然有一天发布的视频播放量急降,这个情况相信不少用户也遇到过

    礼包 2021年11月27日
  • JavaScript怎么实现星座查询功能

    技术JavaScript怎么实现星座查询功能这篇文章主要介绍JavaScript怎么实现星座查询功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、题目在文本框中输入一个生日值,点击按钮,可以显

    攻略 2021年11月2日
  • web前端怎么更好的展示后端返回的十万条数据

    技术web前端怎么更好的展示后端返回的十万条数据本篇内容主要讲解“web前端怎么更好的展示后端返回的十万条数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端怎么更好

    攻略 2021年11月25日
  • 短时间复习通过2021上半年软考软件设计师,附资料)

    技术短时间复习通过2021上半年软考软件设计师,附资料) 短时间复习通过2021上半年软考软件设计师(附资料)距离2021上半年软件设计师考试已经过了好几个月了,这么久才来发这篇文章,惭愧惭愧
    考试的目

    礼包 2021年12月5日