浏览 2377 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-10-26
代码之美1:使用策略模式来编写solr 排序方法
背景:
jsp中有排序方式几个方式选择(select下拉框方式),value 传入到controller-->manager 基于这个value 构造排序方法
原代码: if else if 判断方式
优点: 代码简单易懂
缺点: 新增排序方式的时候,需要增加常量和判断
使用策略模式 :
缺点: 增加了代码的理解度,有enum(jdk1.4特性)相关知识才能明白
优点: 体现了oop的思想,层次更加清晰 扩展方便,
总结: 1.上面只是代表着一种思路,不要一味的认为非得用enum来替代if elseif,有时反而增加复杂度 2.策略模式使用场景
<!--[if !supportLists]-->o <!--[endif]-->以不同的格式保存文件; <!--[if !supportLists]-->o <!--[endif]-->以不同的算法压缩文件; <!--[if !supportLists]-->o <!--[endif]-->以不同的算法截获图象; <!--[if !supportLists]-->o <!--[endif]-->以不同的格式输出同样数据的图形,比如曲线 或框图bar等
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-10-28
最后修改:2012-10-28
嗯,就像我们平时把dao抽象成接口,也算是策略模式吧
|
|
返回顶楼 | |
发表时间:2012-10-29
finallygo 写道 嗯,就像我们平时把dao抽象成接口,也算是策略模式吧
策略模式(Strategy):定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 实际上,策略模式是采用了面向对象的继承和多态机制,客户根据自己的业务需要调用上下文(Context 类)获得相应的具体策略、算法实现。 虽说我们目前 dao抽象成接口 ,但是 大部分情况下面 一般来说 一个接口一个实现类(是吧?) 没能做到相互替换 枚举策略模式 是策略模式中的一种 |
|
返回顶楼 | |
发表时间:2012-10-30
不错,一直不知道enum可以这么用。学习了
|
|
返回顶楼 | |