什么是策略
举例说明:
- 有个数组,你要对它排序,选择的排序算法是一种策略
- 文件的打开,打开方式(txt, word, pdf, 按图片,按视频打开等)是一种策略
- 手机视频呼出、呼入或视频中,挂断的方式,是一种策略
策略模式的好处
当你要改变策略时,不需要修改策略所实施的对象,这样就极大提高了程序的灵活性和扩展性。
举个例子,一个app里可以打泡泡,开始产品只要求一种打泡泡的方式:点一下就破。后来产品又加需求,说要增加点破的方式,比如点6下才破,而且点到3下时有个特殊效果。用策略模式的话,实现新需求时,就不用动之前”点一下就破”的代码,只需增加一个新的”6下点破”策略。
策略模式和状态模式的区别
策略模式强调的是选择: 选择某种策略。
状态模式强调的是转换:帮助上下文(比如某个对象)管理状态,状态之间有转换关系。