Android源码设计模式探索与实战【策略模式】
IT行业,一直讲一句话,拼到最后都拼的是“内功”,而内功往往就是指我们处理问题的思路、经验、想法,而对于开发者来说,甚至对于产品也一样,都离不开一个“宝典”,就是设计模式。今天我们一起借助Android源码去探索一下策略模式的优缺点,以及它所想要去解决的问题。同时结合我工作经验中的一个小例子,来总结实践一下。
1.背景&定义
理解:
策略模式是行为型设计模式的一种。在软件开发中我们常常会遇到这样的情况,实现某一个功能时可以有多种方法和策略,我们可以根据实际情况,选择不同的算法或者策略。例如我们想排序一个数组,有冒泡排序、插入排序、快速排序等,我们可以把这些方法统一写入一个类中,通过if判断或者声明为不同的static方法,然后client去调用选择算法。
但是这样做的坏处显而易见,就是每次新增算法,都需要去修改这这个类,这个类会越来越臃肿,代码逻辑会越来越复杂,后续迭代升级维护困难,而且后来修改者,如果不小心修改了已有算法的某处代码,可能引起灾难性的后果。另外一方面,这个也不符合面向对象六大基本原则中的开