设计模式之策略模式

/**

策略模式:定义一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。

*/

interface ISave{ //把可变的行为抽象出来,定义一系列算法
    public void save(String data);
}

class FileSave implements ISave {  //多个策略 可以继续扩展
    @Override
    public void save(String data) {
        System.out.println("数据保存到文件中");
    }
}
class NetSave implements ISave {
    @Override
    public void save(String data) {
        System.out.println("将数据保存到网络中");
    }
}

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 {

}

public class strategyMode {
    public static void main(String[] args) {
        BaseService user = new UserService();
        user.setISave(new FileSave());
        user.add("user");
    }
}
 

 

posted @ 2022-05-31 12:03  曹伟666  阅读(19)  评论(0编辑  收藏  举报