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

    结构图:

    实现:

    1 abstract public class Strategy {
    2     public void algrithmInterface()
    3     {    
    4     }
    5 }
     1 public class StrategyA extends Strategy{
     2 
     3     @Override
     4     public void algrithmInterface() {
     5         super.algrithmInterface();
     6         System.out.println("算法A的实现");
     7     }
     8     
     9 
    10 }
     1 public class StrategyB extends Strategy{
     2 
     3     @Override
     4     public void algrithmInterface() {
     5         super.algrithmInterface();
     6         System.out.println("算法B的实现");
     7     }
     8     
     9 
    10 }
     1 public class Context {
     2 
     3     private Strategy strategy;
     4 
     5     public Context(Strategy strategy) {
     6         super();
     7         this.strategy = strategy;
     8     }
     9     
    10     public void contextInterface()
    11     {
    12         strategy.algrithmInterface();
    13     }
    14     
    15     public void setStrategy(Strategy s)
    16     {
    17         this.strategy = s;
    18     }
    19 }
     1 public class Client {
     2     public static void main(String[] args)
     3     {
     4         Context context = new Context(new StrategyA());
     5         context.contextInterface();
     6         
     7         context.setStrategy(new StrategyB());
     8         context.contextInterface();
     9     }
    10 }

    应用常用:
    该模式封装了一系列算法,让它们而已相互替换,而不会影响到客户端的变化。

  • 相关阅读:
    二:数组去重
    一:JS 数组对象根据相同key合并成新的数组对象(将一维数组转为多维数组)
    滑动scroll没有效果
    品字布局占满全屏
    js计算器
    html样式初始化
    js计算器
    js邮箱验证
    js菱形
    js实现金字塔图形
  • 原文地址:https://www.cnblogs.com/gatsbydhn/p/4998698.html
Copyright © 2011-2022 走看看