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

    Context:使用不同的策略的环境,它可以根据自身的条件选择不同的策略实现类来完成所要的操作。它持有一个策略实例的引用,创建具有策略对象的方法也可以由它完成

    Strategy:抽象策略,定义每个策略都要实现的策略方法

    Strategy

    package design.pattern.strategy;
    
    public interface Strategy {
        public void run();
    }

    ConcreteStrateA

    package design.pattern.strategy;
    
    public class ConcreteStrateA implements Strategy{
    
        @Override
        public void run() {
            System.out.println("ConcreteStrateA");
        }
    
    }

    ConcreteStrateB

    package design.pattern.strategy;
    
    public class ConcreteStrateB implements Strategy{
    
        @Override
        public void run() {
            System.out.println("ConcreteStrateB");
        }
    
    }

    Context

    package design.pattern.strategy;
    
    public class Context {
        private Strategy strategy;
        
        public Context(Strategy strategy) {
            this.strategy = strategy;
        }
        
        public void setStrategy(Strategy strategy) {
            this.strategy = strategy;
        }
        
        public void run() {
            strategy.run();
        }
    }

    Client

    package design.pattern.strategy;
    
    public class Client {
        public static void main(String[] args) {
            Context context = new Context(new ConcreteStrateA());
            context.run();
            context.setStrategy(new ConcreteStrateB());
            context.run();
        }
    }
  • 相关阅读:
    BZOJ3052:[WC2013]糖果公园
    浅谈莫队
    BZOJ2120:数颜色(莫队版)
    BZOJ3809:Gty的二逼妹子序列
    BZOJ3289:Mato的文件管理
    BZOJ2038:[2009国家集训队]小Z的袜子
    浅谈分块
    Django框架之 Cookie与Session组件
    Django框架之 forms组件
    Django框架之 自定义分页器组件
  • 原文地址:https://www.cnblogs.com/m2492565210/p/7245569.html
Copyright © 2011-2022 走看看