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();
        }
    }
  • 相关阅读:
    swift网络数据请求方法
    使用jQuery在javascript中自定义事件
    javascript循环事件只响应最后一次的问题处理
    关于PHP 时区错误的问题
    安装MySql出现Error Nr.1045的解决办法
    view的阴影效果shadowColor
    关于Swift中的泛函数find的问题
    [BZOJ3196][Tyvj1730]二逼平衡树
    [BZOJ4671]异或图
    [BZOJ4621]Tc605
  • 原文地址:https://www.cnblogs.com/lzh66/p/13285220.html
Copyright © 2011-2022 走看看