如何连接用户界面和业务逻辑

3

我不会描述项目细节或我正在使用的框架,因为问题更加普遍。

创建用户界面和逻辑之间灵活交互的最佳方法是什么?我正在努力解决这个问题,因为经常出现必须通过某些UI使某些功能可用于用户更改,但该功能的代码在代码深处,因此我必须进行大量的重构。

在这种情况下,你的做法是什么?也许建立基于事件的系统,其中事件被分派/处理?在我的情况下,需求经常变化。


1
你所问的是一个设计决策吗?我认为没有人能够在不看到你面临的实际问题的情况下回答这个问题。请更具体地描述你的问题。 - gordanvij
2个回答

5

使用MVx设计模式,例如MVCMVPMVVM

基本上:
* UI不应调用BL。
* UI应该触发事件(或更好地使用命令)。
* 外部处理UI触发的事件/命令,并调用BL。
* BL不应调用UI。
* 修改的数据应该触发事件,或者BL应该触发事件。
* UI应该知道如何呈现数据(最好使用组合来呈现任何类型的数据,并且不要让整个UI依赖于数据类型不变)。
* UI应该在事件发生时刷新。


0

这真的取决于你的应用程序。如果它是一个Web应用程序,你使用的框架可能有一些最佳实践,可以告诉你如何将UI代码与业务逻辑连接起来(例如Spring @MVC)。

另一方面,如果你正在编写一个桌面应用程序,我通常会使用观察者/可观察模式,让我的UI代码得到通知任何更改底层模型。同样,使用的方法因应用程序的上下文而异。


有趣。你有使用观察者模式与WinForms相结合的示例吗?也许有链接或一些示例代码? - Martijn
我并没有太多使用WinForms的经验,但我认为.Net中的事件可能是你正在寻找的。请查看此教程(以及其中进一步资源的链接)http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx - Emil L

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接