策略模式—接口+抽象类应用

/**
    策略模式(Strategy Pattern),定义了一系列的算法,将每一种算法封装起来并可以相互替换使用
    策略模式让算法独立于使用它的客户应用可独立变化
    接口就是定义行为的
    
    把可变的行为抽象出来,这样的好处是这些行为可以在真正使用时相互替换

    设计原则:
        1、面向接口编程(面向抽象编程)
         2、封装变化
         3、多用组合、少用继承

    注:
    1、定义的接口也是一种类型(可以看作是);
    2、把具体的方法(行为)抽象出来就是定义为接口
*/

public class Test31 {

    public static void main(String[] args) {
        BaseSave user = new UserSave();
        user.setISave(new NetSave()); //这里传入不同的对象,就可以调用不同的接口里的方法
        user.add("文件");

    }

}
//把可变的行为抽象出来,定义一系列的算法
interface ISave{
    public abstract void save(String data);
}
//把具体的方法FileSave抽象出来定义为了接口里面
class FileSave implements ISave{
    public void save(String data){
        System.out.println("保存文件中..."+data);
    }
}
//把具体的方法NetSave抽象出来定义为了接口里面
class NetSave implements ISave{
    public void save(String data){
        System.out.println("保存网络中..."+data);
    }
}

abstract class BaseSave{
    private ISave iSave;
    public void setISave(ISave iSave){  //定义setter方法,得到当前对象的属性,只不过这个属性其实就是一个对象;其实就是接口ISave的对象
        this.iSave=iSave;
    }
    public void add(String data){
        System.out.println("数据开始初始化...");
        iSave.save(data);
    
    }
    
}

class UserSave extends BaseSave{
    
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容