gpt4 book ai didi

java - 实现java对象之间通信的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-01 16:06:32 25 4
gpt4 key购买 nike

我正在开展一个学术项目,该项目用 java 模拟一个相当大的排队过程。模拟器的核心位于一个包中,其中存在 8 个类,每个类都实现一个概念。项目中的每个类都遵循 SRP。这些类封装了模拟器的行为并互连项目中的所有其他类。

出现的问题是,这 8 个类中的大多数(我认为这是逻辑上的)是紧密耦合的,并且每个类都必须了解此包中的每个其他类的工作知识,以便能够从中调用方法需要的时候。应用程序只需要每个类的一个实例,因此最好为新类中的每个类创建静态字段并使用它来进行调用,而不是在每个类中为包中的每个其他类保留引用(我我确信这是不正确的)-,但这被认为是正确的设计解决方案吗?或者是否有更适合我的需求的设计模式?

最佳答案

听起来你有一种复杂的状态机。您可以将对象之间的方法调用抽象为异步事件。每个对象可以将通用事件发送到“路由器”对象,而不是直接调用其他对象上的方法。路由器对象会将事件转发给在路由器上注册监听器的任意数量的对象。您可以在监听器或路由器算法中实现过滤器来限制谁接收事件。状态变化也将作为事件发布。
如果您使用 JMS 服务器作为“路由器”,您甚至可以将对象分布在多个主机上。
这种方法以公共(public)事件架构/接口(interface)的形式在对象之间提供了一个简单、可重用的接口(interface)。

关于java - 实现java对象之间通信的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2477123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com