如何用设计模式替代if else

在项目中常遇到这种情况,一个页面(e.g.:用户信息)经常需要在不同的功能模块下面显示,但是在不同的功能下面可能页面显示的内容略有不同(有些控件仅在特定功能下才显示),同时登陆时发送的参数自然也有些不同。过程化的思想使得在一个页面代码里面写满了if else,感觉这样很不好,特来请教高人给出一个比较好的设计方案,谢谢。

典型的Command模式。

只有深刻全面掌握模式后,才会自己解决if else的问题。

哦,谢谢。页面上主要行为的不同在于画这个页面,如果用Command模式封装的话,是要构建子类,重写画页面的函数,这样得以展现在不同功能下的不同页面吗?这样我感觉是不是可以用builder模式呢?谢谢再指点指点呵呵。

不要为了用模式而用模式!!!!

鼓励用设计模式, 不用怎能体会倒"不要为了用模式而用模式".

呵呵,我是真体会到了不用设计模式的坏处了,至于该怎莫用,还在摸索,所以想问问哈哈。

banq大哥,可不可以给出相应的例子给大家讲解一下呢.
谢谢了.关注这个问题.
[该贴被raoxy于2008-03-18 17:30修改过]

用策略模式.把if语句分支中的内容,构造成实现同一个接口或抽象类的实现类.

>典型的Command模式
我值的怀疑,我觉的不是。
用多态取代条件式啊,策略模式和状态模式都是一个好的选择

嗯,谢谢大家的关注,最终我决定使用状态模式来处理这类问题。
比较共同的页面中设置一个状态,然后根据这个状态来构造页面元素,以展现不同的页面效果。
但是随之而来带来的就是state子类的增多,为每一种情况都写了个子类.
个人感觉有得必有失,多态性为我们带来好处的同时,必然也产生了开销,至于这开销到底值不值得还得根据具体情况分析了,设计模式用与不用同样也是考验程序员对需求的把握。

>必然也产生了开销
现在硬件水平不断推进,连J2ME手机都可以顺畅运行200k的系统,以前200K对于JAVA EE已经不是一个小项目。抛弃C语言那种螺丝壳做道场对性能斤斤计较的思维,我在分布式云计算中已经说了,搞Java就要有大智慧,大思维。

http://www.jdon.com/artichect/architecture.html

java的性能应该用对象缓存解决,而不是代码级别上的。