假设我有以下组件:
- 生产者产生数字并向消费者发送消息
- Producer 和 Consumer 都向 Monitor 发送消息
- 监视器,随机说,决定生产/消费过程何时停止并向 Stopper 发送消息
- Stopper 然后干净地停止生产者和消费者
我知道这在 Java 等可变语言中很容易实现。我也知道这可以通过允许接口的部分可变性来解决,例如这里描述的。
但是,即使可能,具有循环依赖关系也不是一个好习惯。所以,让我们假设所有引用都是构造函数注入的并且是最终的:
- 生产者有
final Consumer
和final Monitor
- 消费者有
final Monitor
- 显示器有
final Stopper
- 塞子有
final Producer
和final Consumer
我找到了这样的参考资料,但它们似乎并不适用。
一般而言,如何取消循环这种情况以及诸如此类的情况?换句话说,我最感兴趣的是如何从设计的角度完成不形成循环。有什么提示吗?