gpt4 book ai didi

c++ - 以下情况应遵循的设计模式

转载 作者:行者123 更新时间:2023-11-30 18:13:34 26 4
gpt4 key购买 nike

出于学习目的,我正在使用 GTK+ 工具包和 Webkit 创建一个基于选项卡的 C++ 应用程序。我创建了以下文件

  • Main.cpp => 应用程序入口点
  • MainWindow.cpp/.h => 创建工具栏对象、Notebook、Statusbar 的 MainWindow
  • Toolbar.cpp/.h => 工具栏项目,如后退、前进、urlbar、停止/刷新、
  • NotebookContainer.cpp/.h => 用于创建新选项卡等
  • TabWebView.cpp/.h => 用于创建选项卡(标签+关闭按钮)、网页 View 等

现在我想在工具栏和 TabView 类之间进行通信。因此,当工具栏上发生任何事件时,我可以在 webview.cpp 中执行操作,并从 webview 触发一些事件,我可以在工具栏上执行所需的操作(例如启用/禁用停止按钮)

在这种情况下我应该遵循哪种设计模式?

注意:GTK+ 是基于 C 的库。

最佳答案

我想建议您问错问题。我建议您不要问要遵循什么设计模式,而是问解决问题的最惯用的方法是什么。

我必须修复的最糟糕的设计失败常常来自年轻的程序员,他的方法是“我可以在这里使用什么设计模式?”,或者“我如何使用更多的设计模式”。

研究设计模式有助于提供讨论您的设计的词汇,它们有助于启发和告知您的设计选择,但您的设计方法应该始终是“这里最简单、最干净、最有效、最惯用的方法” 。有时这个问题的答案就是设计模式。有时它是设计模式的一部分,有时它会简单得多——通常是您正在使用的语言或库中的习惯用法。

我不做很多 GUI 编程,所以我对你的具体问题帮不上什么忙。对于您提出的问题,听起来您想使用 GTK 的信号/槽框架。或者,如果您想熟悉 boost 的工具,boost 也提供类似的功能。两者都是您想做的事情的惯用方法。

关于c++ - 以下情况应遵循的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24035173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com