`
阅读更多

策略模式:定义一组算法,将每一种算法封装起来,实现统一接口,使每种算法可以灵活替换。

 

策略模式是行为模式中很好理解的一种模式,类图也很简单,有些像面向接口编程。不过策略模式的最终本意可不是面向接口编程,也不是spring的IOC,它是想各种实现能够灵活替换,而且各算法实现的最终目标是一样的,脱离了这种本意的面向接口编程不应该叫策略模式。

 

比如压缩算法接口,有zip、rar两种实现,这是策略模式

 



 

 

以下例子就不能认为是策略模式:

 

网上下单、取消订单、修改订单,后台处理这些请求都需要校验参数-->处理请求->返回结果,流程都一样,所以定义一个统一接口,接口中有三个方法:校验、处理、返回结果组装,接口有三个实现类:CreateOrderImpl,CancelOrderImpl,ModifyOrderImpl。  Controller层根据请求使用不同的实现类。

 

类图和策略模式一样,但其实不能定义为策略模式,因为各个实现类之间是不能替换的,替换了业务逻辑就变了。顶多可以算上改造成“模板模式+面向接口编程”。

 

如有不对欢迎各位拍砖,不吝赐教!

  • 大小: 24.9 KB
分享到:
评论

相关推荐

    设计模式之策略模式 鸭子问题

    设计模式之策略模式 鸭子问题 策略模式是一种经典的设计模式,通过鸭子问题,可以让学习者更好地了解设计模式的概念和实现。策略模式的主要思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。...

    设计模式之策略模式,商场收银,封装算法

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或场景来执行不同算法的情况。策略模式就是为了解决这类问题而提出的,它将每种算法封装到具有共同接口...

    设计模式之策略模式源码

    在给定的"设计模式之策略模式源码"工程中,我们可以看到通过一个简单的收银系统来展示策略模式的应用。收银系统是一个常见的业务场景,其中可能涉及多种结算策略,如折扣、满减、会员优惠等。通过策略模式,我们可以...

    设计模式之策略模式(附demo)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件工程中,我们经常遇到需要根据不同的条件或时间点执行不同策略的情况。策略模式允许我们将算法族封装到各自独立的类中,使得它们可以互换使用,...

Global site tag (gtag.js) - Google Analytics