《设计模式》系列——策略模式


概念

定义了算法族,分别封装起来,每个族内的各种实现可以相互替换,此模式让算法的变化独立与使用算法的客户

举例

比如我们有一个场景:

在用户上传文件时,
可以根据情况上传到不同地方(aliyun、腾讯云、七牛云、或者本机…)

那么,我们就可以使用策略模式,来定义一个Upload的算法族,包含各种不同的实现(阿里云实现,七牛云实现…等)

在客户端(可以是某个service一类的)调用时,通过设置一个Upload的算法族抽象变量,在运行时通过判断具体情况(比如从数据库中查询到,该用户设置为七牛云上传),来指向具体实现,从而动态的实现不同方式的文件上传

课后习题

英文解释

  • fight -> 打仗,斗争
  • character -> 角色
  • king -> 国王
  • queen -> 女王
  • knight -> 骑士,武士
  • troll -> 没查到什么意思… ,代码中使用dogface(小兵)表示
  • weapon -> 武器
  • knife -> 刀,匕首
  • bowandarrow -> 弓箭
  • axe -> 斧头
  • sword -> 刀,剑

练习题代码实现

地址:http://git.xxinyue.com/ocean/design-pattern


文章作者: ocean
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ocean !
评论
 本篇
《设计模式》系列——策略模式 《设计模式》系列——策略模式
概念 定义了算法族,分别封装起来,每个族内的各种实现可以相互替换,此模式让算法的变化独立与使用算法的客户 举例比如我们有一个场景: 在用户上传文件时,可以根据情况上传到不同地方(aliyun、腾讯云、七牛云、或者本机…) 那么,我们就
2020-04-01
下一篇 
《设计模式》系列——概览 《设计模式》系列——概览
public static int main(){ System.out.println("Hello World"); } 写在前面 平时总是CRUD,感觉代码写来写去没什么意思 当业务频繁变更时,却又觉得代码的灵活度太差 看一
2020-03-31
  目录