Dbus glib接口的设计和使用

问题描述:

在我们的项目中,我们使用dbus进行进程间通信。我们有一个接口,其中需要暴露给其他进程的所有方法都绑定在一起。这只是所有方法的一个接口。这是个好主意吗?将方法分组到不同的界面是否更好?我们有大约50种方法。我不熟悉面向对象的语言。但我觉得把它们分组到不同的界面会更好。Dbus glib接口的设计和使用

将不同接口下的方法分开的好处是什么?我需要在不同接口下分组方法的一些理由。

请注意,dbus具有自动代码生成器,它在输入xml时生成必需的类和方法。

从面向对象的角度来看,最好根据它们的含义将消息分组到不同的接口中。对于即时通讯软件,如洋泾浜你可以有:

  • MyIPCInterface
    • accountCreate(...)
    • 为accountList(...)
    • accountRemove(...)
    • messageSend(...)
    • 的messageReceived(...)*信号
    • statusChange(....)
    • statusChanged(...)*信号

但更好的选择是根据自己的意思这个分成不同的接口:

  • AccountManagerInterface

    • 创建(...)
    • 列表(...)
    • 删除(...)
  • AccountInterface

    • 的sendMessage(...)
    • 的messageReceived(...)*信号
    • statusChange(...)
    • statusChanged(...)*信号

当然,还有很多其他的方法来设计这一点,但主要的一点是,当你收到一个AccountInterface对象“的messageReceived”信号,你知道什么帐户“对象”接收到的信号,更好的而不是将谁应该管理账户与谁应该管理账户对象的问题区分开来。

还有很多话要说,但我希望这可能有助于澄清...