什么是策略模式:
第一点:定义了一系列算法
第二点:每一个算法单独封装
第三点:每一个算法都是可以相互替换
第四点:客户端可以独立变化算法(客户端:调用者)
本质上就是,需要完成一个事情,但是并不清楚使用怎样的策略,于是封装一个函数,根据传递的参数,使用相应的策略完成这个事件的处理
应用场景:
第一点:针对同一类型的问题多种处理方式,仅仅只是具体的行为有差别
第二点:需要安全的封装同一类型的操作
第三点:出现同一抽象类有多个子类,而又需要使用if-else或者switch-case来选择具体子类的时候
角色划分:
3个角色(核心角色:策略接口、具体策略)
角色一:策略接口
角色二:具体策略
角色三:策略上下文(管理器
应用场景:
1: 不同加密算法,之前相互切换调用;
2: 图片缓存策略: 磁盘缓存; 内存缓存; 双缓存;