繁体   English   中英

如何在C#和Java中实现这种可插拔机制?

[英]How to implement this pluggable mechanism in C# and java?

假设我有三个对象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中实现此机制。
任何帮助或提示将不胜感激!

因此,您将拥有一个名为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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM