- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的开发团队遇到了设计问题。我希望有人可以帮助我稍微清理一下架构的这一部分。
在我的系统中,我有一个包含 250 个成员的枚举 [一个成员代表一个不同的下拉列表]。为了填充任何给定窗口的下拉菜单,该表单发送与所需下拉菜单相关的枚举成员,并返回下拉信息。
换句话说,例如,我们有 3 个窗口。窗口 A 有下拉 X、Y 和 Z。窗口 B 有下拉 W、X 和 Y,窗口 C 有下拉 T、U 和 W。我的 DropDownType 枚举将由 T、U、W、X、Y、Y 组成, 和 Z。因此,对于指定的窗口,给定该窗口上的下拉菜单,我查询要显示在这些下拉菜单中的数据。
这是一个简化的示例,因为我的应用程序包含 > 250 个不同的下拉菜单。
如您所想,我有一个出厂设置来返回每个下拉列表的数据。每个下拉请求都会调用这个工厂。
switch (dropDownType)
{
case DropDownType.T:
return (from t in dataContext.GetTable<TableOne>()
select new DropDownDto
{
DropDownDisplayName = t.ColumnA,
DropDownValue = t.ColumnB
}).ToList();
case DropDownType.U:
return (from u in dataContext.GetTable<TableTwo>()
select new DropDownDto
{
DropDownDisplayName = u.ColumnC,
DropDownValue = u.ColumnD
}).ToList();
// etc...
}
因为我在这个枚举中有这么多成员,有人知道更优雅的编码方式吗?您认为将其转换为工厂方法会有帮助吗(但那样我们就不得不担心我们的源代码中有 250 个单独的文件……)?还有其他更有用的模式吗?仅仅拥有这个巨大的 switch 语句就变得难以管理了。
非常感谢任何帮助。提前致谢!
最佳答案
您可以创建一个 Dictionary<DropDownType, DropDownDtoDelegate>
每个条目都包含一个枚举条目作为键和一个委托(delegate)来检索下拉数据作为值。这将允许您将每个返回下拉列表的方法分开,并从巨大的 switch 语句中分离出来。然后,您将有一种方法来检索委托(delegate)、执行它并返回下拉列表数据。
关于c# - 如何以更清洁的方式处理大型工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/664440/
我对 unix 套接字(TCP 本地)有点困惑 我有一个服务器和一个客户端: client 通过套接字向服务器发送一些信息(使用send)多次 server 打印此数据(server 调用 recv
我一直在尝试从数据集中清理特定列。我多次使用 .apply() 函数以便抛出任何可能出现在列的字符串值中的符号。 对于每个符号,函数如下:.apply(lambda x: x.replace("",
我正在按照 http://nvie.com/posts/a-successful-git-branching-model/ 的建议进行独立项目 我使用以下代码发布了我的代码的版本 1: git che
我一直在尝试从数据集中清理特定列。我多次使用 .apply() 函数以便抛出任何可能出现在列的字符串值中的符号。 对于每个符号,函数如下:.apply(lambda x: x.replace("",
我正在按照 http://nvie.com/posts/a-successful-git-branching-model/ 的建议进行独立项目 我使用以下代码发布了我的代码的版本 1: git che
我想让我的 Controller 变薄,并将业务逻辑与其他操作分开。例如我有一个 Action : public function indexAction() { $languages = $
如何清理 react native 项目? 有什么方法可以像我们可以清理 xcode 项目一样清理 React Native 项目? 任何帮助将不胜感激! 最佳答案 一个 react-native 项
我创建了一组 jRadioButton, 每个按钮都有一个操作监听器,用于在单独的窗口中创建 JTable。 我希望当我按下另一个按钮时,框架将被清理,然后执行另一个JTable, ButtonGro
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this q
我有几项任务要在不共享数据的 AWS EMR 上执行,我想使用同一个 EMR 一个接一个地执行它们。有没有办法将正在运行的 EMR 清理回其初始状态(删除配置单元表,清理所有 HDFS 文件等)避免数
更新 bundle 后,您将拥有一些可能已过时的 gem——因为已安装该 gem 的更新版本。 bundle 可执行文件下没有这样的命令,即 bundle clean。如何摆脱这些过时的 gem ?
当我从命令提示符运行“mvn clean tomcat:run”(未指定任何 tomcat 版本)命令以运行我的 Web 应用程序时,它会下载 tomcat 6.0.29 版本依赖项,如下所示: 组织
我可以在我的 iOS 应用程序中使用干净的 c++ 版本的 openGL 吗?我想写一些基本的包装器,然后将我的 C++ 代码与这个包装器和 App 连接起来。或者我必须只使用 openGLES?使用
我是 Apache/mod_rewrite 的新手。我需要这样做 以下网址: http://www.example.com/applications/seo-friendly-text-for-app
有人能告诉我什么是清理不良 HTML 以便 BeautifulSoup 可以处理它的更好方法 - 应该使用 BeautifulSoup 的按摩方法还是使用正则表达式清理它? 最佳答案 我想我应该改写我
假设我有一个 Controller ,其中包含一个呈现 View 的操作。 View 需要数据来呈现。我知道以下方法来准备并将其发送到 View : 使用实例变量 class CitiesContro
我的 ASP.NET MVC 项目已推送到 Azure 网站,其中包含无效的额外 DLL。这导致项目无法正常运行。如果创建了一个新网站,它会完美运行。在本地清理项目并重新部署并不能解决问题。有没有办法
我尝试了很多变体,但无法实现此目的。一个示例(子 pom.xml): org.apache.maven.plugins maven-clean-plugin
我有一些关于 Vaadin 架构的简单问题。 Vaadin 文档声称它是一个 Single-Page Application (SPA)但是这怎么可能呢,因为页面是在服务器端渲染的,到处都是一些 Ja
我的 Dockerfile 看起来像 FROM python:3.7-slim # System setup ENV USER app ENV APP_DIR /home/app RUN userad
我是一名优秀的程序员,十分优秀!