【发布时间】:2017-02-13 13:35:37
【问题描述】:
我的应用程序“节点”组织为具有父子节点的树结构:
A---------B---------C---------D---------E
\---------F
A 是最高祖先,而 E 和 F 是最低后代。执行流程是从上升端到下降端。
每个节点都接受它们需要处理的特定类型的数据。所以在设计决策中,节点可以接收的数据是相互隔离的。
现在出现一个问题,假设节点E和F需要某种类型的数据,但它只在C节点可用。所以我需要一种机制来将数据从 C 节点传输到 E 和 F 节点。
解决方案 1:允许后代节点访问其祖先节点的数据。所以我可以将该数据添加到 C 节点,然后从 E 和 F 节点中取出。我不喜欢这个解决方案的是,所有中间节点(包括 C 和 D)都将包含一些他们实际上不需要的数据。对我来说,这听起来像是将来管理应用程序的问题。
解决方案2:引入一个临时存储类,可以在C中用来存储数据,并从E和F节点读出(将数据带到需要的地方)。对我来说,这个解决方案听起来有点不干净,并且增加了应用程序的复杂性。
所以如果你是我,你会选择哪种解决方案,或者我看不到的不同解决方案?
由于我是软件设计的新手,非常欢迎您提出任何意见和建议。
谢谢。
【问题讨论】:
-
您能添加一些代码以使其清晰吗?
-
我可以在这里看到一条消息总线正在提供帮助。
标签: java architecture software-design