2017-02-25 56 views
0

感觉像之前曾被问过的问题,但我并不确定如何在Google搜索中正确地将其词组化。假设我有一个MainWindow对象,并在该对象中定义了多个对象PanelA,PanelB,PanelC和PanelD。那是什么这个样子什么是将对象连接到彼此的干净而有效的方式

PanelA(PanelB* b, PanelC* c, PanelD* d)

,而不必构造连接这些对象彼此的好方法,你会建议刚通过他们都在通过主类,像这样

PanelA(MainWindow* mw) 
{ 
    b=mw->b; c=mw->c; d=mw->d; 
} 

或者有没有更好的方法来组织我的课程。这个问题通常称为什么,以便我可以自己Google这个东西。

+0

他们需要如何连接?什么目的?他们只是交换数据,调用彼此的功能,......?所有这些因素都会影响你的设计。 – UnholySheep

+1

如何实现这样的关系和联系比在这个天真的问题中假设的要复杂得多。一个很好的例子是Qt Signal/Slot模型,应该如何设计。 –

+0

您是否在谈论所有权模式? – Charles

回答

1

这个问题通常称为什么,以便我可以自己谷歌这些东西。

设计缺陷被称为强耦合硬编码关系的类型和使用。

重构此类代码的一般方法是引入接口和设计模式以通过功能来解决实际的依赖关系。