Java设计模式——策略模式

大概很多人对设计模式的学习都停留在工厂模式和单例模式,其实有很多设计模式我们都已经接触过,或者使用过,下面讲到的策略模式,相信大家在使用ImageLoader,OkHttp等第三方框架的时候,在Application中都需要进行大量的配置工作,比如Builder.setImageFileNameGenerator(new MD5FileNameGenerator()),这里就使用了策略模式,所以面试的时候我们就可以说,策略模式就是自定义了一系列的算法,并且把每个算法封装起来,用户替换这些算法只需要在引用的地方替换相应的算法(策略)即可。

直接用例子来说明吧

实体类

策略类

定义的策略方法应该是实现了接口的类,每一个实现了该接口的类都可以作为一种策略来使用

使用的时候,如果我们需要更改洗衣方式为水洗,那么只需要修改DryWash为NormalWash即可

打印输出

上面的例子只是为了说明我们可以定义多种洗衣方式,需要使用的时候切换即可,实际使用过程中,定义的策略并不需要和实体类关联,实际情况实际分析。

哎,写完的时候突然想到一个很好的例子,古时候打仗的时候不是有火攻,水攻,箭雨,落石,不同的计谋就是不同的策略。还有比如像武功对决中,武林高手使用的招式,这些都是招式都是策略,最后你会发现,策略模式随处可见啊。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 定义 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可...
    步积阅读 4,104评论 0 2
  • 一、定义 策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使...
    怡红快绿阅读 4,538评论 0 0
  • 今天给大家说说田忌赛马的故事。如有雷同,纯属巧合!话说在战国时期,群雄割据,硝烟四起,茶余饭后还是少不了娱乐活动的...
    Jet啟思阅读 10,907评论 4 17
  • 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互...
    梦想编织者灬小楠阅读 4,028评论 2 5
  • 设计模式入门 设计模式是人们在面对同类型软件工程设计问题所总结出来的一些有用的经验。模式不是代码,而是某类问题的通...
    在南方的北方人_Elijah阅读 2,720评论 0 3

友情链接更多精彩内容