接口抽象类应用之策略模式学习
Posted zxfei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口抽象类应用之策略模式学习相关的知识,希望对你有一定的参考价值。
接口应用之策略模式
策略模式(Strategy Pattern),定义了一系列算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于它的客户应用而独立变化。
OO设计原则
- 面向接口编程(面向抽象编程)
- 封装变化
多用组合,少用继承
// 测试类(包含main方法) public class StrategyPattern { public static void main(String[] args) { BaseService userService = new UserService(); // 选用保存到文件的策略 userService.setISave(new Save2File()); // 选择保存到数据库的策略 userService.setISave(new Save2DataBase()); userService.save("user"); } } // 把可变的行为抽象出来,定义一系列的算法,这样的好处是这些行为可以在真正使用时相互替换。 interface ISave { abstract void save(String data); } // 策略类一:将数据保存到数据库 class Save2DataBase implements ISave { @Override public void save(String data) { System.out.println("保存数据到数据库。。" + data); } } //策略类二:将数据保存到文件 class Save2File 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 save(String data) { System.out.println("检查数据合法性。。"); iSave.save(data); System.out.println("保存数据完毕"); } } // 还可以定义其他类实现BaseService class UserService extends BaseService { }
以上是关于接口抽象类应用之策略模式学习的主要内容,如果未能解决你的问题,请参考以下文章