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 }

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

  • 相关阅读:
    关于以追加模式写入文件时,为什么第一行是空行?
    使用正则表达式的技巧
    super关键字的三种用法
    Excel快捷键
    重载与重写的区别
    方法重名
    区分子类方法中重名的三种变量
    继承
    Chapter08【String类、static、Arrays类、Math类】
    Math类
  • 原文地址:https://www.cnblogs.com/gatsbydhn/p/4998698.html
Copyright © 2011-2022 走看看