在我们的项目中,我们使用 dbus 进行进程间通信。我们有一个接口(interface),其中需要暴露给其他进程的所有方法都捆绑在一起。这只是所有方法的一个接口(interface)。这是个好主意吗?将方法分组到不同的接口(interface)中是否更好?我们有大约 50 种方法。我不熟悉面向对象语言。但我觉得最好将它们分组到不同的界面中。
将方法拆分到不同的接口(interface)下有什么好处?我需要一些在不同接口(interface)下对方法进行分组的理由。
请注意,dbus 有自动代码生成器,当 xml 作为输入给出时,它会生成必要的类和方法。
最佳答案
从面向对象的角度来看,最好根据消息的含义将消息分组到不同的接口(interface)中。对于像 pidgin 这样的即时通讯软件,您可以:
- MyIPCInterface:
- accountCreate(...)
- 账户列表(...)
- 帐户删除(...)
- 消息发送(...)
- messageReceived(...) * 信号
- 状态更改(....)
- statusChanged(...) * 信号
但更好的选择是根据其含义将其分成不同的接口(interface):
AccountManager界面
- 创建(...)
- 列表(...)
- 删除(...)
帐户界面
- 发送消息(...)
- messageReceived(...) * 信号
- 状态更改(...)
- statusChanged(...) * 信号
当然,还有很多其他的设计方法,但要点是,当您收到 AccountInterface 对象的“messageReceived”信号时,您知道哪个帐户“对象”收到了该信号,这比您分离更好谁应该管理帐户的问题来自于谁应该管理帐户对象的问题。
关于这一点还有很多话要说,但我希望这可以帮助澄清......
关于c - Dbus glib接口(interface)设计与使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521842/