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();
        }
    }
  • 相关阅读:
    并发编程之线程进阶
    并发编程之线程
    进程间通信(队列和管道)
    在python程序中的进程操作
    操作系统之进程
    网络编程之黏包
    树莓派 websocket 控制LED
    lua 调用 C -- 实例 C函数作为应用程序的一部分
    linux 环境下进程什么时候会被 killed掉
    STM32 + cJSON 死机问题解决
  • 原文地址:https://www.cnblogs.com/lzh66/p/13285220.html
Copyright © 2011-2022 走看看