一段优秀的代码...
刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子的。
先说这个场景中的要素:三个妙计(我们可以理解为三个策略),一个锦囊(可看成是一个上下文对象),一个赵云(策略执行者),妙计是小亮同志给的,妙计是放置在锦囊
里,俗称就是锦囊妙计嘛,那赵云就是一个干活的人,从锦囊中取出妙计,执行,然后获胜,
用JAVA 程序怎么表现这个呢?我们先看类图:
三个妙计是同一类型的东东,那咱就写个策略接口:
然后再写三个实现类,有三个妙计嘛:
策略一的实现:
策略二的实现:
策略三的实现:
好了,大家看看,三个妙计是有了,那需要有个地方放这些妙计呀,放锦囊呀,我们可以把这个锦囊专业理解为上下文对象:
然后就是赵云雄赳赳的揣着三个锦囊,拉着已步入老年行列的、还想着娶纯情少女的、色迷迷的刘老爷子去入赘了,嗨,还别说,小亮的三个妙计还真是不错,瞅瞅:
就这三招,搞的周郎是“陪了夫人又折兵”呀!这就是策略模式,高内聚低耦合的特点也表现出来了...
Android中的应用:
下面说说在Android里面的应用。在Android里面策略模式的其中一个典型应用就是Adapter,在我们平时使用的时候,一般情况下我们可能继承BaseAdapter,然后实现不同的View返回,GetView里面实现不同的算法。外部使用的时候也可以根据不同的数据源,切换不同的Adapter。