Java设计模式【二十三】:策略模式

简介: Java设计模式【二十三】:策略模式

写在前面


设计模式,其实在一定程度上代表着最优解,最佳实践,由一部分开发人员根据经验总结而出的解决方案,分别针对不同的场景的最优解决方案。


在当前环境下,设计模式也被开发人员极为推崇,并且利用其解决众多的问题,所以,学习设计模式刻不容缓。


下面我们就来看一下“策略模式”。


策略模式可是太常见了,而且面试的时候经常被人拿来吹一波,随着吹的人多了,面试官貌似也不怎么问了。


行为型设计模式的一种,主要提供了使某个类可以在代码运行中动态的更改其内部实现逻辑,当然我们要有多个策略类才能够正常切换。


策略模式一直被人们称为和工厂模式结合能完全消除if、else,但是我这里要给大家一个忠告,完全消除if、else是可以的,但是一旦消除后,给我们的开发造成的将会是更棘手的问题。


贸然使用策略模式+工厂模式来取代if、else,将会是噩梦般的灾难。


使用场景


简单说一下策略模式的使用场景吧。


刚才上面我们也说了,策略模式其实就是要更灵活的切换不同策略。


所以如果开发中存在许多相同类别的类,并且这些类之间对外的功效是一致的,比如加密算法,无论哪个加密算法,对外的功效都是加密。


这个时候我们就可以使用策略模式来讲多个实现逻辑分别包装成策略类。


优缺点


策略模式的优点就是可以实现动态的选择策略,并且可以一定程度上的减少if、else的编码。


缺点就是策略类的增多,会给开发人员很大的记忆成本,要做某件事时,需要记忆的东西多了,如果团队中出现新人,需要更多的时间去了解系统代码。


相关文章
|
11天前
|
设计模式 算法 Java
Java工厂策略模式介绍
“工厂策略模式”结合工厂与策略模式,通过工厂创建具体策略对象,实现算法选择与对象创建的解耦。适用于需动态切换策略的场景,如支付方式。提升扩展性与代码可维护性,避免冗长条件判断,符合开闭原则,增强系统灵活性。
114 3
|
27天前
|
设计模式 人工智能 算法
基于多设计模式的状态扭转设计:策略模式与责任链模式的实战应用
接下来,我会结合实战案例,聊聊如何用「策略模式 + 责任链模式」构建灵活可扩展的状态引擎,让抽奖系统的状态管理从「混乱战场」变成「有序流水线」。
|
5月前
|
设计模式 缓存 安全
【高薪程序员必看】万字长文拆解Java并发编程!(8):设计模式-享元模式设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的经典对象复用设计模式-享元模式,废话不多说让我们直接开始。
116 0
|
5月前
|
设计模式 算法 Java
设计模式觉醒系列(04)策略模式|简单工厂模式的升级版
本文介绍了简单工厂模式与策略模式的概念及其融合实践。简单工厂模式用于对象创建,通过隐藏实现细节简化代码;策略模式关注行为封装与切换,支持动态替换算法,增强灵活性。两者结合形成“策略工厂”,既简化对象创建又保持低耦合。文章通过支付案例演示了模式的应用,并强调实际开发中应根据需求选择合适的设计模式,避免生搬硬套。最后推荐了JVM调优、并发编程等技术专题,助力开发者提升技能。
|
11月前
|
设计模式 算法 Kotlin
Kotlin - 改良设计模式 - 策略模式
Kotlin - 改良设计模式 - 策略模式
133 4
|
5月前
|
设计模式 算法 搜索推荐
【设计模式】【行为型模式】策略模式(Strategy)
一、入门 什么是策略模式? 策略模式是一种行为设计模式,允许在运行时选择算法或行为。它将算法封装在独立的类中,使得它们可以互换,而不影响客户端代码。 为什么需要策略模式? 策略模式的主要目的是解决算法
118 14
|
8月前
|
设计模式 算法 开发者
「全网最细 + 实战源码案例」设计模式——策略模式
策略模式(Strategy Pattern)是一种行为型设计模式,用于定义一系列可替换的算法或行为,并将它们封装成独立的类。通过上下文持有策略对象,在运行时动态切换算法,提高代码的可维护性和扩展性。适用于需要动态切换算法、避免条件语句、经常扩展算法或保持算法独立性的场景。优点包括符合开闭原则、运行时切换算法、解耦上下文与策略实现、减少条件判断;缺点是增加类数量和策略切换成本。示例中通过定义抽象策略接口和具体策略类,结合上下文类实现动态算法选择。
248 8
「全网最细 + 实战源码案例」设计模式——策略模式
|
7月前
|
设计模式 Java 数据安全/隐私保护
Java 设计模式:装饰者模式(Decorator Pattern)
装饰者模式属于结构型设计模式,允许通过动态包装对象的方式为对象添加新功能,提供比继承更灵活的扩展方式。该模式通过组合替代继承,遵循开闭原则(对扩展开放,对修改关闭)。
|
10月前
|
设计模式 存储 缓存
前端必须掌握的设计模式——策略模式
策略模式(Strategy Pattern)是一种行为型设计模式,旨在将多分支复杂逻辑解耦。每个分支类只关心自身实现,无需处理策略切换。它避免了大量if-else或switch-case代码,符合开闭原则。常见应用场景包括表单验证、风格切换和缓存调度等。通过定义接口和上下文类,策略模式实现了灵活的逻辑分离与扩展。例如,在国际化需求中,可根据语言切换不同的词条包,使代码更加简洁优雅。总结来说,策略模式简化了多条件判断,提升了代码的可维护性和扩展性。
|
11月前
|
设计模式 消息中间件 搜索推荐
Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
【11月更文挑战第17天】观察者模式是一种行为设计模式,定义了一对多的依赖关系,使多个观察者对象能直接监听并响应某一主题对象的状态变化。本文介绍了观察者模式的基本概念、商业系统中的应用实例,如优衣库事件中各相关方的动态响应,以及模式的优势和实际系统设计中的应用建议,包括事件驱动架构和消息队列的使用。
179 6

热门文章

最新文章