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

    定义一系列的算法,每个单独封装。

    策略模式中,需要创建一个表示各种策略的对象和一个随着策略对象改变而改变的Context对象。策略对象改变Context对象的算法。

    类图关系

    策略类

    package com.alphajuns.strategy;
    
    public abstract class Strategy {
    
        public abstract void method();
    
    }
    

     策略A

    package com.alphajuns.strategy;
    
    public class StrategyImplA extends Strategy {
    
        @Override
        public void method() {
            System.out.println("策略A");
        }
    
    }
    

     策略B

    package com.alphajuns.strategy;
    
    public class StrategyImplB extends Strategy {
    
        @Override
        public void method() {
            System.out.println("策略B");
        }
    
    }
    

     策略C

    package com.alphajuns.strategy;
    
    public class StrategyImplC extends Strategy {
    
        @Override
        public void method() {
            System.out.println("策略C");
        }
    
    }
    

     环境类

    package com.alphajuns.strategy;
    
    public class Context {
    
        Strategy strategy;
    
        public Context(Strategy strategy) {
            this.strategy = strategy;
        }
    
        public void doMethod() {
            strategy.method();
        }
    
    }
    

     测试类

    package com.alphajuns.strategy;
    
    import org.junit.Test;
    
    public class StrategyTest {
    
        public static void main(String[] args) {
            Context context = new Context(new StrategyImplA());
            context.doMethod();
    
            context = new Context(new StrategyImplB());
            context.doMethod();
    
            context = new Context(new StrategyImplC());
            context.doMethod();
        }
    
    }
    
  • 相关阅读:
    web渗透系列--信息收集
    机器学习之常用知识点
    机器学习之特征选择和特征抽取
    NLP之关键词提取(TF-IDF、Text-Rank)
    NLP之CRF应用篇(序列标注任务)
    NLP之概率图模型
    NLP之预训练
    NLP之词向量
    NLP之分词
    机器学习之常用损失函数和优化方法
  • 原文地址:https://www.cnblogs.com/alphajuns/p/13203183.html
Copyright © 2011-2022 走看看