大家好,现在有这么一个需求,请教一下有没有好的实现办法。
需求描述:
1、ClassA产生事件,可能有多种类型,例如:订单创建、订单付款、订单评价。。。等。
2、有许多类需要知道ClassA产生的事件中的一种或多种类型。例如:ClassB想知道ClassA产生的订单创建、订单评价这两个事件。
3、应该怎么实现?我现在的做法是:
Class A {
List<ClassAListener> listeners = new ArrayList<>();
void produceEvent(String a){
if(a == 订单创建){
foreach(listeners as l){
l.onCreated();
}else if(a == 订单付款){
foreach(listeners as l){
l.onPay();
}
}
}
}
}
然后让ClassB继续ClassAListener,重写onCreated、onPay等方法。
描述的可能不太清楚,大家都是高手应该可能看懂我的意思,有问题请留言。
谢谢大家了。