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

    定义:它定义了算法家族,分别封装起来。让它们之间能够相互替换,此模式让算法的变化,不会影响到使用算法的客户

    结构图:

    演示样例代码:

    public interface Strategy {
    
    	public void algorithnInterface();
    }
    public class ConcreteStrategyA implements Strategy {
    
    	@Override
    	public void algorithnInterface() {
    		// TODO Auto-generated method stub
    		System.out.println("算法A实现");
    	}
    
    }
    public class ConcreteStrategyB implements Strategy {
    
    	@Override
    	public void algorithnInterface() {
    		// TODO Auto-generated method stub
    		System.out.println("算法B实现");
    	}
    
    }
    public class ConcreteStrategyC implements Strategy {
    
    	@Override
    	public void algorithnInterface() {
    		// TODO Auto-generated method stub
    		System.out.println("算法C实现");
    	}
    
    }
    public class Context {
    
    	private Strategy strategy;
    
    	public Context(Strategy strategy) {
    		this.strategy = strategy;
    	}
    	
    	public void contextInterface() {
    		
    		strategy.algorithnInterface();
    	}
    }
    
    client代码:

    public class Client {
    
    	public static void main(String[] args) {
    		
    		Context context = null;
    		context = new Context(new ConcreteStrategyA());
    		context.contextInterface();
    		
    		context = new Context(new ConcreteStrategyB());
    		context.contextInterface();
    		
    		context = new Context(new ConcreteStrategyC());
    		context.contextInterface();
    	}
    }
    

    执行输出:

    算法A实现

    算法B实现

    算法C实现




  • 相关阅读:
    Understanding Optional and Compulsory Parameters
    WebMail
    bool?
    第六章笔记 上
    菜鸟错题集
    vue的基本用法
    luogg_java学习_06_面向对象特性之封装和继承
    luogg_java学习_05_面向对象(方法和类)
    CSS3学习总结
    luogg_java学习_04_数组
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6726176.html
Copyright © 2011-2022 走看看