zoukankan      html  css  js  c++  java
  • 策略模式

    策略模式 

    策略这个词应该怎么理解,打个比方说,我们出门的时候会选择不同的出行方式,比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等,这些出行方式,每一种都是一个策略。

      再比如我们去逛商场,商场现在正在搞活动,有打折的、有满减的、有返利的等等,其实不管商场如何进行促销,说到底都是一些算法,这些算法本身只是一种策略,并且这些算法是随时都可能互相替换的,比如针对同一件商品,今天打八折、明天满100减30,这些策略间是可以互换的。

    public abstract class Strategy {
        public abstract void algorithmInterface();
    }
    public class ConcreteStrategyA extends Strategy{
    
        @Override
        public void algorithmInterface() {
            System.out.println("用A算法实现");
        }
    }
    public class Context {
    
        Strategy strategy;
    
        public Context(Strategy strategy) {
            this.strategy = strategy;
        }
    
        //上下文接口
        public void contextInterface() {
            strategy.algorithmInterface();
        }
    }
    public class Client {
    
        public static void main(String[] args) {
            Context context;
            context = new Context(new ConcreteStrategyA());
            context.contextInterface();
            context = new Context(new ConcreteStrategyB());
            context.contextInterface();
            context = new Context(new ConcreteStrategyC());
            context.contextInterface();
        }
    }
  • 相关阅读:
    Android测试AsyncTask下载图片
    Android DatePickerDialog TimepickerDialog
    Android AlertDialog
    Android activity的回传数据
    Android Handler简单使用
    Java Switch(String)
    JAVA测试装饰者模式
    Java实现数组按数值大小排序
    Java参数按值传递?按引用传递
    Spring cloud之断路器hystrix包问题
  • 原文地址:https://www.cnblogs.com/lzh66/p/13285220.html
Copyright © 2011-2022 走看看