日期:2014-05-18  浏览次数:20786 次

两个类通信的问题,在线等
现在遇到一个难题,就是两个类之间要互相主动通信,类似于网中的收包发包,而且是异步的。就是A->B同时B->A.
想了很久,各条路上都遇到了麻烦
1、通过委托方式,A中初始化了B解决了单向主动通信,但是反过来则不行
2、建立了第三方中间类C,A,B中都实例化了C,但是参数传递遇到问题,如何将C的对象c如何通过构造函数传递到AB中,
并赋值给AB中的某个private C 的成员,甚是不解。
请达人指教!!谢谢!!

------解决方案--------------------
设计模式多么的重要啊。
观察者模式可以实现广播通知的效果。
如果单纯的是2个类,彼此都提供一个使用对方来创建对象的方式就可以了。
比如,简单的这样做。
C# code

public class A
{
    public B inner = null;
    public A(B other)
    {
        inner = other;
        other.inner = this;
    }
    public A()//也需要一个无参的
    {
    }
}

public clBss B
{
    public A inner = null;
    public B(A other)
    {
        inner = other;
        other.inner = this;
    }
    public B()//也需要一个无参的
    {
    }
}

使用

A o1 = new A();
B o2 = new B(o1);

------解决方案--------------------
使用静态c ,实例化应该有点问题吧,只能是c来做数据传递? 如果静态c ,a和b能主动拿数据