2015年12月10日21:54:25
完成一个功能可能会有好几种算法或者方法来实现,通过对算法和方法的抽象,提供统一接口,不通算法,实现方式为实现类,通过注入不同的实现对象来实现算法,实现方式的灵活切换即为策略模式。
策略模式是针对多种选择的代码片段的优化,是的代码减少修改,符合开闭原则。
优点:逻辑直观,易于扩展。
缺点:每增加一个算法或者实现方式都要实现一个类。类文件会显著增加
感觉设计模式其实就讲的是一种技巧或者写好的代码的捷径。单同时也是牺牲了一部分的,比如类的数量变大了,单却更好的,更优雅的实现比较好的代码。
策略在重构代码中的考量,比如类似 if lese , switch case 这类语句,如果判断很多,其实可以通过策略模式来重构这部分的代码,不至于一大坨,又一大坨的代码块。通过多个实现类的方式,灵活在多种算法,实现方式之间切换。
原文:http://www.cnblogs.com/androidsuperman/p/5037590.html