设计模式之策略模式
程序员文章站
2022-05-04 20:54:30
...
策略模式:定义一组算法,将每一种算法封装起来,实现统一接口,使每种算法可以灵活替换。
策略模式是行为模式中很好理解的一种模式,类图也很简单,有些像面向接口编程。不过策略模式的最终本意可不是面向接口编程,也不是spring的IOC,它是想各种实现能够灵活替换,而且各算法实现的最终目标是一样的,脱离了这种本意的面向接口编程不应该叫策略模式。
比如压缩算法接口,有zip、rar两种实现,这是策略模式
以下例子就不能认为是策略模式:
网上下单、取消订单、修改订单,后台处理这些请求都需要校验参数-->处理请求->返回结果,流程都一样,所以定义一个统一接口,接口中有三个方法:校验、处理、返回结果组装,接口有三个实现类:CreateOrderImpl,CancelOrderImpl,ModifyOrderImpl。 Controller层根据请求使用不同的实现类。
类图和策略模式一样,但其实不能定义为策略模式,因为各个实现类之间是不能替换的,替换了业务逻辑就变了。顶多可以算上改造成“模板模式+面向接口编程”。
如有不对欢迎各位拍砖,不吝赐教!
推荐阅读
-
C#策略模式(Strategy Pattern)实例教程
-
C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能
-
C#设计模式之Builder生成器模式解决带老婆配置电脑问题实例
-
C#设计模式之Facade外观模式解决天河城购物问题示例
-
C#设计模式之Strategy策略模式解决007大破密码危机问题示例
-
C#设计模式之Mediator中介者模式解决程序员的七夕缘分问题示例
-
C#设计模式之ChainOfResponsibility职责链模式解决真假美猴王问题实例
-
代理角色java设计模式之静态代理详细介绍
-
C#设计模式之Observer观察者模式解决牛顿童鞋成绩问题示例
-
Java设计模式之Iterator模式介绍