策略模式

什么是策略模式:

第一点:定义了一系列算法

第二点:每一个算法单独封装

第三点:每一个算法都是可以相互替换

第四点:客户端可以独立变化算法(客户端:调用者)

  

  本质上就是,需要完成一个事情,但是并不清楚使用怎样的策略,于是封装一个函数,根据传递的参数,使用相应的策略完成这个事件的处理

应用场景:

第一点:针对同一类型的问题多种处理方式,仅仅只是具体的行为有差别

第二点:需要安全的封装同一类型的操作

第三点:出现同一抽象类有多个子类,而又需要使if-else或者switch-case来选择具体子类的时候

角色划分:  

3个角色(核心角色:策略接口、具体策略)

角色一:策略接口

角色二:具体策略

角色三:策略上下文(管理器

应用场景:

  1: 不同加密算法,之前相互切换调用;

  2: 图片缓存策略: 磁盘缓存; 内存缓存; 双缓存;

 

 

原文地址:https://www.cnblogs.com/jiefangzhe/p/9608930.html