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



    1. 策略模式(Strategy Pattern)

    给一个对象(context )以不同的策略(Strategy ),该对象就会执行不同的策略算法,这里需要三个对象

    • 策略算法接口
    • 每个算法的具体实现
    • Context 对象


    2. 流程


    2.1 策略算法接口

    public interface Strategy {
    	abstract void travel();
    }
    

    2.2 策略算法的具体实现

    • 坐飞机
    public class aircraft implements Strategy {
    
    	public void travel() {
    		System.out.println("坐飞机");
    	}
    }
    
    • 坐火车
    public class train implements Strategy {
    
    	public void travel() {
    		System.out.println("坐火车");
    	}
    }
    

    2.3 上下文对象

    public class Context {
    	
    	private Strategy st;
    
    	public Context(Strategy st) {
    		this.st = st;
    	}
    	
    	public void Setout(){
    		System.out.println("Coneext去旅游——————策略算法为:");
    		st.travel();
    	}
    }
    

    2.4 实现

    public static void main(String[] args) {
    	
    	Context c1 = new Context(new aircraft());
    	c1.Setout();
    	
    	System.out.println("------------------------------");
    	
    	Context c2 = new Context(new train());
    	c2.Setout();
    }
    
    Coneext去旅游——————策略算法为:
    坐飞机
    ------------------------------
    Coneext去旅游——————策略算法为:
    坐火车
    

    说到底策略模式和装饰者模式还是有很大的相似性,都是通过包装来实现----装饰者模式




  • 相关阅读:
    nginx的那些事儿
    mysql优化初探
    mysql使用心得
    mysql 利用触发器来实现check约束
    mybtatis添加数据返回主键
    maven导入本地jar包
    mariadb做读写分离
    linux网络(一)
    kali进行arp嗅骗和攻击的一次记录
    Vue项目中:axios请求拦截器添加token验证
  • 原文地址:https://www.cnblogs.com/Howlet/p/12027704.html
Copyright © 2011-2022 走看看