不要太严格,这里是我对这段代码的解释.让我们称之为反应流Roland的所有者.
起初,Roland需要所有入站信号的通用接口
static interface Signal {};
ConcurrentLinkedQueue inboundSignals = new ConcurrentLinkedQueue();
像取消,订阅和发送这样的信号总是有相同的目的是不可变的并且经常发生,所以将它们实现为Joshua Bloch’s Singleton是好主意:
enum Cancel implements Signal { Instance; };
enum Subscribe implements Signal { Instance; };
enum Send implements Signal { Instance; };
另一种方法是做同样的建议和我的最爱:
enum CommonSignals implements Signal{
Cancel {
@Override
void debug() {
System.out.println("Cancel");
}
},
Subscribe {
@Override
void debug() {
System.out.println("Subscribe");
}
},
Send {
@Override
void debug() {
System.out.println("Send");