工厂模式:创建接口抽象类,类等的对象。
外观模式: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) );
}
}