请教一个设计模式的问题。

比如我有一个RadioButtonList控件,如下:
<asp:RadioButtonList ID="_charttype" runat="server" RepeatDirection="Horizontal"
RepeatLayout="Flow" AutoPostBack="true">
<asp:ListItem Text="柱状图" Value="pillar" Selected="True"></asp:ListItem>
<asp:ListItem Text="线状图" Value="line"></asp:ListItem>
<asp:ListItem Text="饼状图" Value="pie"></asp:ListItem>
</asp:RadioButtonList>

我想在用户选择"柱状图"时执行方法"pillarEvent",选择"线状图"时执行方法"lineEvent",选择"饼状图"时执行方法"pieEvent",但我不想代码中出现if else或者switch case,请问要如何实现呢?
...全文
111 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xboxeer 2012-04-07
  • 打赏
  • 举报
回复
用简单工厂 里面不想用switch case的话就直接反射 每种绘图方式就是对应一个类
xiaohong 2012-04-07
  • 打赏
  • 举报
回复
用反射吧,你这里选择项里标示一下方法名称、反射调用。用委托的话在注册的时候怎么办?这里是字符串耶。
ixkixkix 2012-04-07
  • 打赏
  • 举报
回复
这个要作成象photoshop的滤镜一样灵活,
可以随便集成第三方的滤镜,
ixkixkix 2012-04-07
  • 打赏
  • 举报
回复
不要用if,else,只要再加一种图形,你的代码又得改。
ixkixkix 2012-04-07
  • 打赏
  • 举报
回复
如果只是调用而已,用命令模式吧,应该不错。

另外,也可以使用装饰模式,
装饰模式专门用来定制界面的
  • 打赏
  • 举报
回复
不是为什么需求,只是想了解要怎么实现而已。
色拉油 2012-04-07
  • 打赏
  • 举报
回复
这是什么需求,敢问不用if else的意欲何在?
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
委托?
[/Quote]
正是想用这个。
劼哥stone 2012-04-07
  • 打赏
  • 举报
回复
委托?
lele1028265767 2012-04-07
  • 打赏
  • 举报
回复
枚举?~好吧,只是猜想,坐等答案
feixuyue 2012-04-07
  • 打赏
  • 举报
回复
list<string,func<>> list;
然后相应的键查找相应的方法

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧