首页 > 其他分享 >设计模式-策略模式

设计模式-策略模式

时间:2023-10-31 19:48:29浏览次数:33  
标签:OperationContext 策略 int void 模式 Strategy new 设计模式 public

public class 策略模式 {
    public static void main(String[] args)
    {
        Strategy add=new ConcreteStrategyA();
        Strategy sub=new ConcreteStrategyB();
        Strategy multiply=new ConcreteStrategyC();
        OperationContext context=new OperationContext(add);
        context.Operation(4,5);
        context=new OperationContext(sub);
        context.Operation(4,5);
        context=new OperationContext(multiply);
        context.Operation(4,5);
    }
}
class OperationContext{
    Strategy strategy;
    public OperationContext(Strategy strategy)
    {
        this.strategy=strategy;
    }
    public void Operation(int a,int b){
        strategy.TwoNumberOperation(a,b);
    }
}
interface Strategy{
    public void TwoNumberOperation(int a,int b);
}
class ConcreteStrategyA implements Strategy{
    @Override
    public void TwoNumberOperation(int a,int b)
    {
        System.out.println(a+b);
    }
}
class ConcreteStrategyB implements Strategy{
    @Override
    public void TwoNumberOperation(int a,int b)
    {
        System.out.println(a-b);
    }
}
class ConcreteStrategyC implements Strategy{
    @Override
    public void TwoNumberOperation(int a,int b)
    {
        System.out.println(a*b);
    }
}

运算结果

 

标签:OperationContext,策略,int,void,模式,Strategy,new,设计模式,public
From: https://www.cnblogs.com/cinan/p/17801113.html

相关文章

  • 光波导中模式理解-2
    光波导中模式理解-2(含脚本实例)参考文献[1]H.Wenzel,P.Crump,J.Fricke,P.ResselandG.Erbert,"SuppressionofHigher-OrderLateralModesinBroad-AreaDiodeLasersbyResonantAnti-Guiding,"inIEEEJournalofQuantumElectronics,vol.49,no.12,pp.11......
  • 阿里大佬:DDD落地两大步骤,以及Repository核心模式
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 软件设计-状态模式
    publicclass状态模式{publicstaticvoidmain(String[]args){Contextcontext=newContext();context.Request();context.Request();context.Request();//System.out.println(context.getState());context......
  • Ubuntu下编译最新版本全志开源FEL模式工具sunxi-tools
    1、sunxi-tools介绍sunxi-tools是一组用于全志SoC系列芯片的开源命令行工具,全志的SoC一般以sun开头,x为数字,以i结尾。对于sun4i,sun5i,sun6,sun8i,sun9i.等等系列都可以使用这个工具。比如手上的这个板子是H616,它的名字是sun50i-H616。sunxi-tools是一组工具集,这组工具可以用于对全......
  • 如何一步步优化负载均衡策略
    发展到一定阶段后,Web应用程序就会增长到单服务器部署无法承受的地步。这时候企业要么提升可用性,要么提升可扩展性,甚至两者兼而有之。为此,他们会将应用程序部署在多台服务器上,并在服务器之前使用负载均衡器来分配传入的请求。大公司可能需要数千台运行其Web应用程序的服务器来处......
  • 设计模式(一)
    1设计模式什么是设计模式?一个问题通常由n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。设计模式有20多种,对应20多种软件开发中会遇到的问题。关于设计模式的学习,主要学什么?1)解决什么问题?2)怎么写?2单例设计模式简介:确保一个类只有一个对......
  • 设计模式(十)外观
    一、定义为子系统中的一组接口提供一个一致的入口,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式是一种结构型模式。二、描述包含以下两个角色:1、Facade(外观角色):在客户端可以调用它的方法,在外观角色中可以知道相关的(一个或多个)子系统的功能和责任;在......
  • Redis集群模式incr保证原子性的原理
    1.主要是redis的key会解析到固定的主机上,比如集群上有host1,host2,host3;然后key1可能会解析后发现是要发到host2上,则在host2正常的情况下(有点像kafkarebalance;consumer处理哪些分区),key1会一直在host2上进行操作;因此在redis集群正常情况下不会出现对key1第一次incr是在host2,第二次......
  • 设计模式-享元模式
    importjava.nio.channels.Pipe;publicclass享元模式{publicstaticvoidmain(String[]args){pieceFactoryfactory=newpieceFactory();PiecewhitePiece=factory.getPiece(0);PiecewhitePiece1=factory.getPiece(1);Pie......
  • 查看调整cpu频率及模式
    使用cpufrequtils查看调整cpu频率及模式cpufrequtils是一个查看和修改CPU频率GHz的工具有些物理服务器使用默认频率进行运行,这时可以使用该工具进行就该CPU的核心频率安装:aptinstallcpufrequtilsyuminstallcpufrequtils使用:#查看全部核心详细信息cpufreq-info#查......