我有遗留的win.forms应用程序,用非常简单的方法编写,其中表单与UI事件上的DAL进行通信。例如,有文本框:登录/密码,按钮 - “登录”和实现业务逻辑的点击处理程序(如果为空,则要求DAL通过ID /密码获取用户,如果不为空 - 则显示下一屏幕 - 显示“重试屏幕”)。我只是想将业务逻辑从处理程序中分离出来:获取与DAL通信的现有处理程序代码,并将其分组到UI处理程序之外的某个位置。使遗留下来的直接win.forms应用程序代码更加清晰
几十个表单由几十个用户控件组成,并且通常不清楚谁负责业务逻辑。有时候是UI控制。但有时候这是一种表单,他正在监听自定义UI控件事件,然后实现业务逻辑。
如果我分开业务逻辑,谁应该负责调用业务逻辑控制器?表单,用户控件或表单和用户控件同时?
预先感谢您!
好吧,谢谢,但它看起来像我现在要做的事情:把业务对象代码放在一个地方(停止UI处理程序和业务逻辑组合)。所以这个代码可以通过方法从UI访问。我想知道谁会称这些新方法:形式或控制。想象一下,我有用户控制“登录”:2个文本框+ 1个按钮。在按钮点击时应该“登录”调用业务逻辑方法还是应该“登录”有“OnLogin”事件并委托业务逻辑调用来形成?现在的代码有混合的方法:有时控件,但有时形式包含业务逻辑 – 2010-06-17 14:08:01
啊我明白你的意思是形式与控件现在。我会说与最不共同的分母。如果您计划重复使用具有不同控件的表单类,将这些调用方法放置在表单本身上并使控件触发事件可能更安全。 回到您的登录示例..如果您想要某种形式的验证,所以我们假设凭证是错误的,您需要显示一条消息..在我看来,如果表单处理此行为会更好,因为控件应该在大多数情况下彼此不知道。 – 2010-06-17 14:14:26
但是,如果您要遵循Windows标准,将所有行为放在表单中是一个不错的选择,因为我认为这与afx消息映射的行为类似。 – 2010-06-17 14:15:03