策略模式理解

package 策略模式;

public class mian {
    /**
     *    模拟:快船VS火箭,   第一个策略, CP3 和 格里芬 里外结合。  
     *           
     *                      第二哥策略,  小乔丹和太子爷一起发挥,里外结合。
     *                      
     *                      第三个策略,   把自己玩死了, 回家钓鱼。 
     *    
     *     下面的这种形式, 应该是很常见的一种, 不同的业务执行,传入到高层的时候,都是以接口作为参数来进行。
     *    
     *     在高层的时候, 都是直接接口来执行方法。 实现接口的具体子类就是代表一个不同的业务。 这就是一种策略模式。就是添加了一个接口而已。
     *     
     *     只是我们在调用的时候, 需要知道, 这个时候,我是需要哪一种策略或者哪一种业务。 我们必须知道这一点,对我们来说,我们需要知道所有的业务
     *     
     *     然后来进行选择。 (书本后面说,通过工厂方法模式来处理这个问题,后续在进行升级。)
     * 
     * **/
	public static void main(String[] args) {
		
		  // 第一场, 选择第一个策略 
		
		  StrategyOne one = new StrategyOne();
		  StrategyList list = new StrategyList(one);
		  list.execute();
		  
		  // 第二场, 选择第二个策略 
		  StrategyTwo two = new StrategyTwo();
		  StrategyList context = new StrategyList(two);
		  context.execute();

	}

}


package 策略模式;


// 策略接口 
public interface IStrategy {
	
	
	public void  execute();

}

package 策略模式;


// 锦囊,装策略的盒子 

public class StrategyList {
	
	private IStrategy   strategy;
	
	public StrategyList(IStrategy strategy){
		
		 this.strategy = strategy;
	}
	
	public void  execute(){
		
		this.strategy.execute();
		
	}

}

package 策略模式;


// 策略一 

public class StrategyOne implements IStrategy{

	@Override
	public void execute() {
		
		System.out.println("第一个策略, CP3 和 格里芬 里外结合。");
		
		
	}

}

package 策略模式;

// 第二个策略  
public class StrategyTwo implements IStrategy{

	@Override
	public void execute() {
		
		
		 System.out.println("第二哥策略,  小乔丹和太子爷一起发挥,里外结合。");
		
	}

}


打印结果:


第一个策略, CP3 和 格里芬 里外结合。

第二哥策略,  小乔丹和太子爷一起发挥,里外结合。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值