JAVA设计模式之 策略模式【Strategy Pattern】

来源:互联网 发布:scanner软件怎么用 编辑:程序博客网 时间:2024/04/27 13:58
            JAVA设计模式、都是前辈们积累下来的经典的设计思想、可能我们在平时的代码中都没有经常用到、我曾经在读书的时候有过一段时间每天去学习一种设计模式、但是在后来的工作中、通常都是在公司自主的框架中编写一些业务处理代码、最近在学习Android的过程中、发现Android里面应用了大量的设计模式、于是我便翻出以前看过的一本很经典设计模式书籍出来、把里面每种设计模式、重新代码写一遍、一方面加深自己的设计思想、另一方面也希望更多的人学习到、如果您是一个初级的coder,可以从中领会到怎么设计

一段优秀的代码...


           刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子的。
先说这个场景中的要素:三个妙计(我们可以理解为三个策略),一个锦囊(可看成是一个上下文对象),一个赵云(策略执行者),妙计是小亮同志给的,妙计是放置在锦囊
里,俗称就是锦囊妙计嘛,那赵云就是一个干活的人,从锦囊中取出妙计,执行,然后获胜,

用JAVA 程序怎么表现这个呢?我们先看类图:



三个妙计是同一类型的东东,那咱就写个策略接口:



然后再写三个实现类,有三个妙计嘛:

策略一的实现:



策略二的实现:



策略三的实现:



好了,大家看看,三个妙计是有了,那需要有个地方放这些妙计呀,放锦囊呀,我们可以把这个锦囊专业理解为上下文对象:



然后就是赵云雄赳赳的揣着三个锦囊,拉着已步入老年行列的、还想着娶纯情少女的、色迷迷的刘老爷子去入赘了,嗨,还别说,小亮的三个妙计还真是不错,瞅瞅:




就这三招,搞的周郎是“陪了夫人又折兵”呀!这就是策略模式,高内聚低耦合的特点也表现出来了...


Android中的应用:

下面说说在Android里面的应用。在Android里面策略模式的其中一个典型应用就是Adapter,在我们平时使用的时候,一般情况下我们可能继承BaseAdapter,然后实现不同的View返回,GetView里面实现不同的算法。外部使用的时候也可以根据不同的数据源,切换不同的Adapter。



原创粉丝点击