假设我有三个对象A,B,C B是以下接口的实现:
interface D
{
event EventHandler<OrderEventArgs> OrderCreated;
event EventHandler<OrderEventArgs> OrderShipped;
}
我会在B中添加两个函数,它们将引发界面中的事件。
class B
{
RaiseOrderCreated();
RaiseOrderShipped();
}
A是托管类,将调用B的函数来引发指定的事件。 我希望在C中我可以听到接口B或C类,每当B中的事件被引发时,C就会得到通知,然后C就可以对事件做出反应。
我在考虑如何在C#和Java中实现这个机制 任何帮助或提示将非常感谢!
答案 0 :(得分: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
}
答案 1 :(得分:0)