Java中如何运用策略模式优化设计模式?

2026-05-25 23:220阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2150个文字,预计阅读时间需要9分钟。

Java中如何运用策略模式优化设计模式?

在一个银行系统中,若普通用户、中级会员、高级会员分别对应不同的优惠政策,常规编程需用一系列判断语句区分用户类型,从而应用相应的策略模式。

在一个收银系统中,如果普通用户、中级会员、高级会员分别对应着不同的优惠策略,常规编程就要使用一系列的判断语句,判断用户类型,这种情况下就可以使用策略模式。

一、概念理解

策略模式的概念很好理解,它将对象和行为分开,将行为定义为 一个行为接口和具体行为的实现,每个if判断都可以理解为一个策略。

如果在收银系统中使用策略模式,要将普通、中级、高级会员分别定义一个具体策略类,并实现各自的方法,定义一个环境类,持有策略类的引用,由引用调用相应的策略类方法,客户端传入相应的具体策略对象就会调用各自的策略方法。

学过了状态模式,很多人也把状态模式和状态模式搞混,现在就可以考虑一下为什么不使用状态模式?

各个策略之间并不存在流转(比如:状态1234切换)关系,都是各自的算法实现各自的逻辑,客户端控制调用哪个策略,如果使用状态模式就变成了,先调用普通会员的策略,再调用中级会员的策略,再调用高级会员的策略,看到最后的优惠用户估计会乐疯吧!

和状态模式一样,策略模式也应包含三个角色:

抽象策略类:策略是一个接口,该接口定义若干个算法标识,即定义了若干个抽象方法

具体策略类:具体策略是实现策略接口的类

环境类 /上下文类:上下文提供一个方法,持有一个策略类的引用,最终给客户端调用。

相比于状态模式,策略模式各个角色的职责更简单,我们基于收银案例实现策略模式demo。

阅读全文

本文共计2150个文字,预计阅读时间需要9分钟。

Java中如何运用策略模式优化设计模式?

在一个银行系统中,若普通用户、中级会员、高级会员分别对应不同的优惠政策,常规编程需用一系列判断语句区分用户类型,从而应用相应的策略模式。

在一个收银系统中,如果普通用户、中级会员、高级会员分别对应着不同的优惠策略,常规编程就要使用一系列的判断语句,判断用户类型,这种情况下就可以使用策略模式。

一、概念理解

策略模式的概念很好理解,它将对象和行为分开,将行为定义为 一个行为接口和具体行为的实现,每个if判断都可以理解为一个策略。

如果在收银系统中使用策略模式,要将普通、中级、高级会员分别定义一个具体策略类,并实现各自的方法,定义一个环境类,持有策略类的引用,由引用调用相应的策略类方法,客户端传入相应的具体策略对象就会调用各自的策略方法。

学过了状态模式,很多人也把状态模式和状态模式搞混,现在就可以考虑一下为什么不使用状态模式?

各个策略之间并不存在流转(比如:状态1234切换)关系,都是各自的算法实现各自的逻辑,客户端控制调用哪个策略,如果使用状态模式就变成了,先调用普通会员的策略,再调用中级会员的策略,再调用高级会员的策略,看到最后的优惠用户估计会乐疯吧!

和状态模式一样,策略模式也应包含三个角色:

抽象策略类:策略是一个接口,该接口定义若干个算法标识,即定义了若干个抽象方法

具体策略类:具体策略是实现策略接口的类

环境类 /上下文类:上下文提供一个方法,持有一个策略类的引用,最终给客户端调用。

相比于状态模式,策略模式各个角色的职责更简单,我们基于收银案例实现策略模式demo。

阅读全文