定义
- 定义了一系列算法
- 每一个算法单独封装
- 每一个算法可以相互转换
- 客户端可以独立变化算法
应用场景
- 针对同一种类型的问题的多种处理方式,仅仅只是具体的行为有差别
- 需要安全的封装同一类型的操作
- 出现同一抽象类有多个子类,而又需要使用if-else或者switch-case来选择具体子类的时候
角色划分
三个角色
- 角色一:策略接口
- 角色二:具体策略
- 角色三:策略上下文(管理器,有时可以省略)
案例
开发当中,有时候需要对数据进行加密,有可能需要不同的加密算法
AES加密算法
DES加密算法
自定义加密算法。。。
此时就需要用到策略模式
demo
网友评论