解耦类C#

时间:2010-11-10 01:52:27

标签: c# decoupling

这可能有点模糊,但我正在开发一个程序,其中有几个类更新UI。我创建了一个“中间人”类,它基本上接受了所有UI请求(以及其他内容)并将它们路由到UI本身,这样UI类只与中间人交互。

问题是UI类在其界面中有大约20个不同的函数,而我所有的中间人类基本上都是从较低级别的类中调用,然后在UI中调用一个基本相同的函数,这使得我想知道这是否以某种方式击败了整个目的。我确信这是一个很大的问题。还有更优雅的方法吗?

谢谢,

PM

2 个答案:

答案 0 :(得分:2)

很高兴不必在后端引用UI内容。我认为这就是你想要这样做的原因。

如果是这种情况,你可以做的是实现一些Publish/subscribe pattern(例如Observer pattern)。这样,您就不必专门引用UI。您可以从后端“发布”,并从您的UI订阅这些事件。

或者,您可以从界面继承UI,并在其上指定所需的方法。然后,仅参考后端的界面。

答案 1 :(得分:2)

很遗憾,您并未真正说明您用于构建UI的内容。但是WPF(或Silverlight)和数据绑定可以很快消除整个问题。简而言之,UI中的项目绑定到支持类中的属性和命令。当属性更改时,将引发PropertyChanged事件,并且UI知道要更新自身。有关更多信息,请开始搜索MVVM。

在一天结束时,这实际上是观察者模式的一种形式,但您不必自己进行所有连接。