您的位置:首页 > 其它

设计模式之策略模式(Strategy Pattern)

2013-11-15 09:40 204 查看
策略就是方法。策略模式的优点是高内聚低耦合,扩展性强。下面是一个简单的Demo:

Demo描述:定义一个接口,定义三个(可以更多)方法实现该接口,定义“盛放”这些方法的类,这里的“盛放”就是持有引用的意思,这里要动态持有引用,不建议写死。

接口:

public interface Methord {

public void operate();

}

实现方法:

//方法一

public class Methord_First implements Methord {

@Override

public void operate() {

// TODO Auto-generated method stub

System.out.println("方法一实现了!!");

}

}

//方法二

public class Methord_Second implements Methord {

@Override

public void operate() {

// TODO Auto-generated method stub

System.out.println("方法二实现了!!");

}

}

//方法三

public class Methord_Third implements Methord {

@Override

public void operate() {

// TODO Auto-generated method stub

System.out.println("方法三实现了!!");

}

}

持有不通策略引用的类

//关键

//在该类中声明接口,利用该类的构造方法,间接让该类动态持有不通策略的引用,继而能使用其中方法。

public class Context {

public Methord methord;

public Context(Methord methord){

this.methord = methord;

}

public void context_operate(){

methord.operate();

}

}

测试类

public class Test {

public static void main(String[] args){

Context context;

//方法一

context = new Context(new Methord_First());

context.context_operate();

//方法二

context = new Context(new Methord_Second());

context.context_operate();

//方法三

context = new Context(new Methord_Third());

context.context_operate();

}

}

打印结果:

方法一实现了!!

方法二实现了!!

方法三实现了!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: