一、什么是策略模式
策略模式(Strategy Pattern)是一种软件设计模式,属于行为型模式之一。该模式定义了一系列算法,将每个算法封装起来,并使它们可以互换。策略模式使得算法的变化独立于使用算法的客户端。
在策略模式中,定义一族算法,将每个算法封装成具体的类,使它们之间可以互相替换,而不影响客户端的代码。这样,客户端可以选择使用不同的算法,而不需要修改自己的代码。
二、代码
public class Test {
public static void main(String[] args) {
UserService userService = new UserService();
userService.setISave(new NetService());
userService.add("user");
}
}
/**
* 把可变的行为抽象出来
*/
interface ISave{
void save(String data);
}
/**
* ,定义一系列算法
*/
class FileSave implements ISave{
@Override
public void save(String data) {
System.out.println("把数据保存到文件中..." + data);
}
}
class NetService implements ISave{
@Override
public void save(String data) {
System.out.println("把数据保存到网络中..." + data);
}
}
abstract class BaseService{
private ISave iSave;
public void setISave(ISave iSave){
this.iSave = iSave;
}
public void add(String data){
System.out.println("检查数据合法性...");
iSave.save(data);
System.out.println("数据保存完毕。");
}
}
class UserService extends BaseService{
}