云敛容 2014-08-27 09:13 采纳率: 33.3%
浏览 3760

子窗口调用父窗口的方法或者使用父窗口的成员变量

我们在开发中,常常会遇到在子窗口调用父窗口的方法或者使用父窗口的成员变量的情况。
对于子窗口使用父窗口的变量,我能想到的方法有:
(1)构造函数里面增加参数,构造的时候直接把需要用到的变量传进去;
(2)父窗口提供接口函数,在子窗口调用父窗口的函数,去获取变量值。
这两种那种更好?对于软件工程以及软件设计模式的开闭原则、低耦合高内聚来说,哪种更合理?或者是不是有更好的办法?

然后是子窗口调用父窗口的函数:
(1)构造函数中,直接将父窗口的指针(句柄)传入,需要时,可以通过指针直接调用;
(2)子窗口提供设置回调函数的接口,父窗口提前调用接口设置好回调函数,待需要调用的时候,直接调用这个回调函数;
(3)发送消息,利用消息机制。比如MFC的消息机制,Qt的信号与槽等等。
总感觉消息机制,是最合理的,但是消息机制,比较麻烦,要写的地方比较多,而通过指针调用的方式,更加方便,不过总感觉这种方式不太好,会不会破坏程序的开闭原则、低耦合高内聚等等。我分析不出来,希望有大神,可以指点一二。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 C# P/Invoke的效率问题
    • ¥20 thinkphp适配人大金仓问题
    • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
    • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
    • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
    • ¥15 彩灯控制电路,会的加我QQ1482956179
    • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
    • ¥15 (关键词-电路设计)
    • ¥15 如何解决MIPS计算是否溢出
    • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理