1

假设我有三个对象 A、B、C。B
是以下接口的实现:

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

我将在 B 中添加两个函数,这将引发界面中的事件。

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

A 是宿主类,将调用 B 的函数来引发指定的事件。我希望在 CI 中可以监听接口 B 或类 C,每当 B 中的事件被引发时,C 可以得到通知,然后 C 可以对事件做出反应。

我正在考虑如何在 C# 和 Java 中实现这种机制。
任何帮助或提示将不胜感激!

4

2 回答 2

1

所以你会有一个名为 C 的 EventListener,一个名为 A 的对象,它有一个 B 类型的字段,它是 D 的实现的一些孩子。

通常在 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 回答