您的位置:首页 > 其它

设计模式:策略模式-让你可以用不同的笔写作业

2013-06-12 09:54 204 查看
策略模式,相信大家都不很陌生,但是对于初学者,可能不是很明白。

现在由我给大家讲讲策略模式。

根据我的理解,大家可以把策略模式的使用想象成一个人要写作业,写作业可以用不同的笔,这里不同的笔就是不同的策略了。

下面给出示例,逐一解释。

Tools.java这个类就是抽象的策略角色,也就是笔这个抽象角色

public interface Tools {
public void write();
}


Pen.java这个是一个具体的策略,钢笔

public class Pen implements Tools {

@Override
public void write() {
System.out.println("我用钢笔写作业");

}

}


Pencil.java 这个是一个具体的策略,铅笔

public class Pencil implements Tools {

@Override
public void write() {
System.out.println("我用铅笔写作业");

}

}


BallPointPen.java 这个是一个具体的策略,圆珠笔

public class BallPointPen implements Tools {

@Override
public void write() {
System.out.println("我用圆珠笔写作业");

}

}


策略的抽象角色和策略的一些具体实现我们都定义好了

下面我们还缺少使用这些策略的角色,也就是策略模式当中的 环境角色。

环境角色应该持有一个抽象策略接口的引用。

示例:Person.java

public class Person {

private Tools tools;

public Tools getTools() {
return tools;
}

public void setTools(Tools tools) {
this.tools = tools;
}

public Person(Tools tools)
{
this.tools = tools;
}

public void write()
{
this.tools.write();
}
}


策略模式的使用:

UseCase.java

public class UseCase {

public static void main(String[] args) {
Person person = new Person(new Pen());
person.write();
person.setTools(new Pencil());
person.write();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: