我想开发一个具有图形用户界面的应用程序,可以使用不同的widget工具包进行开发。例如,我想使用Qt,GTK +甚至ncurses作为同一应用程序的用户界面的构建块。此外,用户可以选择在下次启动应用程序时使用哪种GUI实现,而无需先重新编译。我想知道在设计实现中使用的设计策略和设计模式有哪些?
答案 0 :(得分:3)
多个GUI的经典设计模式是MVC。
您有一个模型(应用程序数据和规则),控制器(每个视图一个) - 这些控制UI交互并在UI(视图)和模型之间进行调解。
您可以与控制器进行不同的视图对话 - 一个视图可以是Qt,另一个视图可以是控制台应用程序。
答案 1 :(得分:1)
你为什么要这样?
每个工具包都有自己的优点和缺点。如果你想设计一些可以与它们一起使用的东西,那么你将受到所有弱点的累积总和的限制,并且不会获得任何优点。
例如,如果您使用Qt,那么您将无法使用QT的信号和插槽。这将使编写GUI和与它的交互相当痛苦。你基本上需要在已经是包装层(到本机API)的东西周围写一个完整的包装层
我认为用户无需在Qt或GTK +或ncourses之间进行选择的原因。只需选择一件事并坚持下去。