在我的应用程序中,我们有母版页,它有一些共同的特点,如出口到Excel,PDF等。
在内容页面上,我有多个标签的TabContainer。
当我运行像导出到Excel这样的选项时,母版页在内容页上调用exportExcel函数。基于活动选项卡,我运行不同的逻辑来导出数据。每个选项卡上的字段不同,因此需要单独的逻辑。
var activeTab = TabContainer.ActiveTab;
if (activeTab == abc_Tab)
{
//some logic
}
else if (activeTab == def_Tab)
{
//some logic
}
else if (activeTab == ghi_Tab)
{
//some logic
}
else if (activeTab == jkl_Tab)
{
//some logic
}
字符串
这段代码运行得非常好。问题是,这种if-else逻辑对于每个母版页功能都是重复的。如果我添加了新的功能,比如导出到csv,ExportCsv函数也会有这个if-else条件。这不仅限于导出功能。有时,我需要传递一些数据/参数,并且基于活动的数据/参数,这些数据/参数的解释不同。
有没有更好的方法来处理这件事?
1条答案
按热度按时间twh00eeo1#
我建议使用策略模式来 Package /隐藏所有这些东西。https://www.dofactory.com/net/strategy-design-pattern
你可以使用一个字典与导出逻辑实现和使用标签名称作为关键检索的实现逻辑。
字符串
其中:
型
当需要导出数据时,请执行以下操作:
型