Oop 如何在客户端类上同时建立观察者和可观察者?

Oop 如何在客户端类上同时建立观察者和可观察者?,oop,design-patterns,observer-pattern,Oop,Design Patterns,Observer Pattern,我有一个a类,一旦a类发生任何变化,它就会通知B类,而B类也会通知a类,反之亦然 如何实现这样的设计?任何样本都可以使用。该模式在观察者和受试者之间完全可以互换(反之亦然),毕竟它们只是通知其他对象的对象。简单地说 interface ISubject { void notifyObservers(); } interface IObserver { void notify(); } class A : ISubject, IObserver { publ

我有一个
a类
,一旦
a类
发生任何变化,它就会通知
B类
,而
B类
也会通知
a类
,反之亦然


如何实现这样的设计?任何样本都可以使用。

该模式在观察者和受试者之间完全可以互换(反之亦然),毕竟它们只是通知其他对象的对象。简单地说

interface ISubject 
{ 
    void notifyObservers(); 
}

interface IObserver 
{ 
    void notify(); 
}

class A : ISubject, IObserver
{
    public void notifyObservers()
    {
        // Notify B that I've change!
    }

    public void notify()
    {
        // B has changed, do something!
    }
}

class B : ISubject, IObserver
{
    public void notifyObservers()
    {
        // Notify A that I've change!
    }

    public void notify()
    {
        // A has changed, do something!
    }
}

答案就在你的标题里。这里没有什么特别的,只是使用观察者模式。双向的。