/**
策略模式(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{
}
策略模式—接口+抽象类应用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 接口可以继承接口。抽象类可以实现(implements)接口,抽象类可以继承具体类。抽象类中可以有静态的main方...
- 一、接口的结构: 抽象方法 全局常量 最终写法: 其他内部结构内部类内部抽象类内部接口 二、接口和抽象类 抽象类可...
- 天疱疮是一组由血清中的抗桥粒芯蛋白的抗体(天疱疮抗体)引起的慢性自身免疫性大疱病。患者血清中的天疱疮抗体结合于皮肤...