我有一个A类(调度程序),负责处理接收数据的通信和解析,并将其传递给B类(应用程序的业务逻辑)。
B类和A类应该互相呼叫,因为通信是双向的: 从业务逻辑层发送数据并接收数据作为响应。
有关最佳设计的任何建议,可用于促进A类和B类之间的通信。我不认为它们应该只是指向对方。
答案 0 :(得分:1)
如果这是一个长时间运行的操作,您可以考虑将这些操作实现为BeginOperation()
和EndOperation()
方法对,使用回调或其他一些异步模式(检查Asynchronous Programming Design Patterns)。< / p>
我也避免使用循环引用。我将以与WCF Duplex服务类似的方式实现此功能。在项目B中创建业务类B,并且接口代表其他项目需要实现的合同以便从B调用,我们称之为IBCallbackContract。所以你需要:
IBCallbackContract
Initialize(IBCallbackContract)
方法IBCallbackContract
,我们称之为BLCallback
BLCallback
Initialize
方法,向其发送BLCallback
答案 1 :(得分:1)
一个简单的解决方案是使用B类方法发送信息,并使用B类事件接收数据。当您开始时,A类订阅该事件,双向通信现在将起作用。