1 概述
策略模式(Strategy Patern),是把针对同一件事情的不同的算法分别封装起来,并且相互之间可以替换。这种模式的使用需要以下三种角色:
(1)环境角色:应用不同的策略来达到完成某件事情的目的;
(2)抽象策略角色:通常由接口或者抽象类实现,所有的具体角色都继承此抽象;
(3)具体策略角色:具体的算法实现;
2 示例
相对来说,例子还是挺多的,比如淘宝搜索的时候,是按照卖出量排序还是价格排序还是好评度排序等等。
前面的几种模式都是拿手机做例子,那还是继续手机做例子吧。
现在的智能手机基本上都是大屏幕,看着花里胡哨的很爽。流行的手机操作系统都支持换屏幕主题的功能。不同的Theme有着不同的背景图、图标、字体。用户还能自定义特殊癖好的主题。
首先来个接口,所有的手机主题都必须实现此接口:
1 package org.scott.strategy; 2 /** 3 * @author Scott 4 * @date 2013年12月22日 5 * @description 6 */ 7 public interface Theme { 8 public void backGround(); 9 public voi