Qt中的接口隔离

时间:2009-09-29 09:36:55

标签: qt interface solid-principles interface-segregation-principle

我总是尝试应用S.O.L.I.D原则,我真的很喜欢Qt工具包,但我发现自己一直在使用single inheritance rule进行骚扰。

  

如果您使用多重继承,   moc假设第一个继承   class是QObject的子类。   另外,请确保只有第一个继承的类是QObject。

如何组合QObject规则的单一继承和接口隔离原则
我想用信号和插槽定义接口,但我不允许这样做。

你如何解决这个缺点?

2 个答案:

答案 0 :(得分:5)

请记住,信号和插槽只不过是具有特殊行为的功能。因此,可以使用它们来创建接口。

有关流程的完整说明以及复杂案例的完整解决方法,请参阅Qt Quarterly #15

答案 1 :(得分:1)

我不认为你可以通过Qt的信号/插槽机制轻松解决这个问题。您可以尝试查看boost :: signals或sigc库,它们可以更灵活地放置信号和插槽。请注意可能与库和Qt的signalsslots宏发生命名空间冲突。