1

3 つのオブジェクト A、B、C
があるとします。B は次のインターフェイスの実装です。

interface D
{
    event EventHandler<OrderEventArgs> OrderCreated;
    event EventHandler<OrderEventArgs> OrderShipped;
}

インターフェイスでイベントを発生させる 2 つの関数を B に追加します。

class B
{
  RaiseOrderCreated();
  RaiseOrderShipped();
}

A はホスティング クラスであり、指定されたイベントを発生させるために B の関数を呼び出します。CI でインターフェイス B またはクラス C をリッスンできることを願っています。B のイベントが発生するたびに、C が通知を受け取り、C がイベントに反応できるようになります。

この仕組みをC#やJavaで実装する方法を考えています。
どんな助けやヒントも大歓迎です!

4

2 に答える 2

1

したがって、C という EventListener と、D の実装の子供である型 B のフィールドを持つ A というオブジェクトがあります。

通常、Java では D を別の方法で設計します。

interface D {
   static final String ORDER_PROPERTY="ORDER";
   void setOrder(Order order);
   Order getOrder();
}

class B implements D {
   // delegate object to implement support for event listeners and event firing
   private java.beans.PropertyChangeSupport propertyChangeSupport = new java.beans.PropertyChangeSupport(this);
   private Order order = null; // field that holds current order
   @Override
   public void setOrder(Order order) {
      Order old = this.order;
      this.order = order;
      propertyChangeSupport.firePropertyChange(ORDER_PROPERTY, old, order);
   }
   // more B code here
}
于 2010-09-10T01:09:53.707 に答える
0

このパターンを実装してください: http://en.wikipedia.org/wiki/Observer_pattern

于 2010-09-10T02:13:42.820 に答える