策略模式:定义一系列的算法,将每一种算法封装起来,并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。
在生活中,假如我们有一堆数据需要保存,可能保存为文件,可能保存带数据库,也可能保存到网上。我们平常的想法是定义一些列类,每次使用哪个存储方法,就新建一个新的对象,来调用方法。这样的话既费时又费力,方法多次重写,还增加了类与类之间的耦合性。 不利于我们的开发。
我可以把所有相似的类的共同可变的行为抽象出来,定义一系列的算法,独立出来,脱离用户,绑定接口,方便使用和扩展
OO设计原则:
- 面向接口编程
- 封装变化
- 多用组合,少用继承
代码实例:
- 首先定义一个接口,建立一个保存的抽象方法
public interface ISave {
public void save(String data);
}
- 定义一系列的算法,来完成相似的功能
public class NetSave implements ISave{
public void save(String data) {
System.out.println("正在把数据存到网上"+data);
}
}