策略模式

 

 

 

工厂模式:创建接口抽象类,类等的对象。

外观模式:1 让外部客户端减少子系统内多个模块的交互,(多个类或接口的组合逻辑写到Facede中) 。

          2 选择性暴漏子系统内部的接口

 

适配器:模式:转换匹配,复用功能 。 

 

组合模式:强调部分与整体  ,最后组成树形结构 。

单例模式:整个系统只有一个单独实例,减小内存占用 。

生成器模式: 

原型模式:拷贝原型,创建对象 。 

代理模式:提供代理以控制对象访问 

 

 

 

 

 

 

 

 

一.组成部分:

1. 环境角色:持有一个策略类引用 

2. 抽象策略(策略类的抽象方法) 

3. 具体策略:相关的算法或操作(抽象方法的实现类)

 

代码:

 

/**
 * 策略模式的 执行 环境 
* @ClassName: Enviroment
* @Description: 
* @author wangzhantao
* @date 2013-3-11 下午04:32:36
*
 */
public class Enviroment {
	private Strategy strategy;
	public Enviroment(Strategy strategy){
		this.strategy = strategy;
	}
	public Integer calculate(int a, int b){
		return strategy.calculate(a, b) ;
	}
	public Strategy getStrategy() {
		return strategy;
	}
	public void setStrategy(Strategy strategy) {
		this.strategy = strategy;
	}
}

 

2 策略类的方法或接口

public interface Strategy {

	public int calculate(int a,int b);
}

 3 抽象策略的实现类

 

 

//减 策略 
public class SubtractdStrategy implements Strategy{
	@Override
	public int calculate(int a, int b) {
		return  a-b;
	}

}

 

  

//乘法策略
public class MultiplyStrategy implements Strategy{
	@Override
	public int calculate(int a, int b) {
		return  a*b;
	}
}

 

 4  策略模式的测试类

   

//策略模式的测试类
public class TestStrategy {
	public static void main(String[] args) {
		Strategy  strategy = new DivideStrategy();
		Enviroment  enviroment= new Enviroment(strategy);
		System.out.println(  enviroment.calculate(10, 2) );
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值