首页 > 其他分享 >策略模式

策略模式

时间:2023-02-09 14:25:15浏览次数:33  
标签:策略 void 模式 strategy context Context Strategy public

// 策略模式
// 定义一个抽象类
public abstract class Strategy {
    public abstract void algorithm();
}

// 定义具体的策略
public class ConcreteStrategyA extends Strategy {
    public void algorithm() {
        System.out.println("使用策略A");
    }
}

public class ConcreteStrategyB extends Strategy {
    public void algorithm() {
        System.out.println("使用策略B");
    }
}

// 定义上下文类
public class Context {
    private Strategy strategy;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public void executeAlgorithm() {
        strategy.algorithm();
    }
}

// 测试类
public class Test {
    public static void main(String[] args) {
        Context context;

        context = new Context(new ConcreteStrategyA());
        context.executeAlgorithm();

        context = new Context(new ConcreteStrategyB());
        context.executeAlgorithm();
    }
}

  

标签:策略,void,模式,strategy,context,Context,Strategy,public
From: https://www.cnblogs.com/deepalley/p/17105097.html

相关文章

  • CSS 3.0中的混合模式的妙用
    给大家分享一个用CSS3.0的混合模式实现的特效,不用给文字设置多种颜色,滚动页面时,能够让文字能够根据背景颜色自动发生改变,效果如下:以下是代码实现,欢迎大家复制粘贴和收藏。<......
  • Darkmode.js实现黑暗模式
    运用CSS3.0的过滤属性可以实现黑暗模式,当我们用这个属性实现黑暗模式时,我们会发现图片的颜色会受影响,并不是很美观,是无法完美切换黑暗模式的,而最近出了一个JavaScript辅助......
  • CSS 3.0的过滤属性实现黑暗模式
    现在很多的网站都喜欢采用黑暗模式,毕竟这种界面看起来逼格比较高端,比如下面这样的效果:你可能会认为这是不是需要写两套样式,其实不用,用一个属性就可以变成黑暗模式,以下是代码......
  • 360浏览器的极速模式和兼容模式的区别
    简单的说360浏览器中包含了两个浏览器一个是IE(Trident内核),即兼容模式,在使用网银时需要切换为兼容模式一个是Chrome(Chrommium内核),即极速模式,普通浏览时使用使用极速模式,......
  • 6 mvvm设计模式
    Vue的createApp和mount方法讲解​​简介​​​​最常见的Vue初级代码​​​​createApp()和mount()方法讲解​​​​createApp()方法的基本参数讲解​​​​如何获......
  • PHP享元(轻量级)模式
    阅读目录​​项目应用目录​​​​动物接口​​​​实体鸡​​​​实体猪​​​​农场​​​​借助最简单的’工厂模式‘来实现享元模式​​项目应用目录结构型模式-php享......
  • PHP外观模式
    阅读目录​​项目目录结构​​​​动物接口​​​​实体鸡工厂​​​​实体猪工厂​​​​外观类​​​​运行phptest.php​​项目目录结构结构型模式-php外观模式把系......
  • php适配器模式
    阅读目录​​场景​​​​test.php​​​​AudioPlayer.php​​​​MediaInterface.php​​​​Adapter.php​​​​AdvanceMp4Player.php​​​​MediaAdvanceInterface.ph......
  • PHP注册模式
    阅读目录PHP注册模式PHP注册模式注册模式解决全局共享和交换对象,将已创建好的对象,挂在全局可以使用的数组上,在需要使用的时候,直接从该数组上获取该类的实现即可......
  • 以 standalone 模式启动 Aapche Pulsar
    以standalone模式启动AapchePulsarstandalone模式常用于开发测试阶段,请勿在生产环境使用。目录以standalone模式启动AapchePulsar常见问题内存小于4GB,导致无......