gpt4 book ai didi

java - 多个OSGi服务实例和DS绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 04:51:58 25 4
gpt4 key购买 nike

我认为结合使用 OSGi 服务 + DS 是正确的做法,但是,我真的很想滥用它。要么就是这样,要么就是纯粹太棒了。 (两者仍然是可能的)。

让我们想象一下以下应用程序:它是一个家庭数据库。我有两个界面,House 和 Window。假设我对每个可用的至少有一个实现,配置为...好吧,作为需要配置来实例化的组件,并且为了创建新实例,我只需将此配置提供给正确的 pid。 (它不是工厂组件,也不是服务工厂 - 官方名称是什么?这是 Neil 的优秀 post about it)。

到目前为止一切顺利,这就像一个魅力。

房子就是房子。有自己的地址,每一个都不同,很容易通过街道属性识别。然而,Windows 实例可以在不同的房屋之间共享;它们的配置基本上是宽度和高度。

现在,这些组件还可以在 0..n 基数配置中相互绑定(bind)(即使您不想住在没有 window 的房子里)。因此,每个房子都有一个 window 列表,对于每种 window 类型,我们都知道哪个房子有它(多对多关系)。

我的问题是,假设两栋房子共用三个 window 。我该如何描述这一点呢?我觉得基于属性的过滤表达力不够。我还觉得这可能不是让框架实例化我的对象的正确方法,但它太方便了。

想法?我是在滥用它,还是按预期使用它?

(我还可以使用 DS 完成一半的工作:将 Houses 列表绑定(bind)到它的 Window 实例引用,反之亦然,然后组件实例可以调用 registerWhatever() 函数目标实例 - 但我仍然需要以某种方式描述至少这一半。)

最佳答案

很难弄清楚你在这里问什么,可能是因为 House/Window 抽象不起作用。显然这不是您真正在做的事情...您只是想模糊或简化真实模型吗?我知道这是有充分理由的,但 House/Window 听起来更像是域类,而不是服务或组件。如果您确实为数据库的每行创建一个服务,那么我认为您正在滥用服务的概念。

关于java - 多个OSGi服务实例和DS绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9653967/

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