设计模式_策略方法(代码片段)

tjc1996 tjc1996     2023-03-12     217

关键词:

模式:行为型模式
在策略模式中,我们常见各种策略对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象执行算法。
策略模式主要是用来封装一组互相替换的算法,可以根据需要动态地替换 Context 使用的算法。

? 代码实现

public interface Strategy
    public int operation();
public class OperationSubstract implements Strategy
   @Override
   public int doOperation(int num1, int num2) 
      return num1 - num2;
   
public class OperationMultiply implements Strategy
   @Override
   public int doOperation(int num1, int num2) 
      return num1 * num2;
   
public class Context 
   private Strategy strategy;
 
   public Context(Strategy strategy)
      this.strategy = strategy;
   
 
   public int executeStrategy(int num1, int num2)
      return strategy.doOperation(num1, num2);
   
public class StrategyPatternDemo 
   public static void main(String[] args) 
      Context context = new Context(new OperationAdd());    
      System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
 
      context = new Context(new OperationSubstract());      
      System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
 
      context = new Context(new OperationMultiply());    
      System.out.println("10 * 5 = " + context.executeStrategy(10, 5));
   

经典案例python详解设计模式:策略模式(代码片段)

完成一项任务往往有多种方式,我们将其称之为策略。比如,超市做活动,如果你的购物积分满1000,就可以按兑换现金抵用券10元,如果购买同一商品满10件,就可以打9折,如果如果购买的金额超过500,就可以享受满减50元的优... 查看详情

设计模式:策略模式(代码片段)

设计模式:策略模式特点案例:购物车结算完整代码特点一个问题匹配多个解决方案可以添加解决方案可以删除解决方案案例:购物车结算解决方案constsale='100_10':price=>price-=10,'200_30':price=>... 查看详情

行为型模式-策略模式(代码片段)

行为型模式-策略模式策略模式(Strategy)解决算法选择问题描述适用环境优点:缺点:违反原则代码实现策略模式(Strategy)解决算法选择问题描述定义了一组算法,并使得它们能够互相替换,从而... 查看详情

002策略设计模式(代码片段)

一.概述策略设计模式就是将功能的实现抽离出来,形成统一的接口.提供一个统一的接口参数方法. 二.代码实现这里用一个交税的例子说明一下.[1]策略接口publicinterfaceCalculateTax//一个统一的接口,方法的入参分别为工资和奖金dou... 查看详情

策略模式与简单工厂模式(代码片段)

...,工厂模式调用方可以直接调用工厂实例的方法属性等。策略模式是将生成实例的使用策略放在策略类中配置后才提供调用方使用,策略模式不能直接调用实例的方法属性,需要在策略类中封装策略后调用。 事列代码:usingSys... 查看详情

基于springboot注解实现策略模式(代码片段)

源码meethigher/springboot-strategy-mode参考文章SpringBoot下的策略模式,消灭了大量的ifelse,真香!_程序新视界-CSDN博客springboot基于注解方式实现策略模式_aogula的博客-CSDN博客,主要抄袭自这篇文章适配器模式和策略模式... 查看详情

模板方法模式&策略模式区别联系(代码片段)

 一、模板方法模板方法模式:定义一系列算法,子类延伸实现。着重点在于:子类去处理不同的方法实现。看下面例子。假如一个支付都包含三个部分:生成订单----》调用API发起支付-----------》处理订单1.基类/***〈购物流程... 查看详情

设计模式-行为型模式讲解二(模板策略解释器)(代码片段)

一、行为型设计模式上篇,我们呢讲解了-行为型设计模式的责任链、命令、迭代器模式。文章地址:https://blog.csdn.net/qq_43692950/article/details/120404903这篇文章我们来讲解下行为型设计模式的模板方法、策略、解释器模式。... 查看详情

设计模式-策略模式(代码片段)

参考:《大话设计模式》策略模式(Strategy): 它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户环境角色(Context):持有一个Strategy对象的引用抽象策略角色(Strat... 查看详情

设计模式中的多态——策略模式详解(代码片段)

目录1.关于策略模式2.策略模式详解2.1策略模式定义2.2策略模式的UML类图3.策略模式的优点3.1一个使用策略模式的例子3.2与其他实现方式的对比3.3使用策略模式的优点4.使用工厂方法模式改进原有策略模式5.总结5.参考资料1.关于策... 查看详情

策略模式(代码片段)

策略模式是一种简单的模式,利用继承(实现)关系。对同一个功能产生不同的子类,对某个方法进行不同的策略代码如下//接口类publicinterfaceStrategypublicintreduce(intpay);//实现1,满五百减两百publicclassStrategyAimplementsStrategy@Overridepub... 查看详情

策略模式(代码片段)

业务场景:操作类型三种。0、1、2、为了层次清晰,减少if判断,所以使用。目录结构:  1、server类@TransactionalpublicvoidsaveQuestion(QuestionRequestrequest)IQuestionSaveHandlerhandler=null;tryhandler=SpringContextHolder.getBean(IQuestionSaveHandler.QUESTI... 查看详情

23种设计模式(12):策略模式(代码片段)

定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。类型:行为类模式。类图:策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换。在前面... 查看详情

设计模式之策略模式(代码片段)

策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用不同的算法,减少了各种算法类与使用算法类之间的耦合。1|策略模式定义策略模式是一种... 查看详情

ue4设计模式策略模式strategypattern(代码片段)

概述描述策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。套路Context(环境类)负责使用算法策略,其中维持了一个抽象策略类的引用... 查看详情

headfirst设计模式——策略模式(代码片段)

一、引入  继承的最大弊端:    改变会牵一发而动全身,造成其他子类不想要的改变。    无限的重写方法会让人崩溃。  利用接口:    实现接口,也要重写方法,每个实现类都重写这个方法,代码无法复... 查看详情

golang策略设计模式(代码片段)

目的:根据不同策略来执行对象的相应操作和工厂模式很像,不同点在于:工厂模式是传入参数后创建对象,根据传入的参数写逻辑来判断应该创建什么类型的对象,模式的使用者调用对象统一的方法操作。策略模式是模式的使... 查看详情

[设计模式]策略模式(代码片段)

[设计模式]策略模式所谓策略模式,就是一个类的行为或算法可以在运行时更改。常见的策略模式是在if··elseif···这种语句下,且其if的需求是不断变动的。 1.反例代码  这是一个税率计算器,根据... 查看详情