我不需要经常创建 GUI,但今天我这样做了,我希望能得到一些设计输入。
基本上我有一个后端,我也打算使用 MVC 模式添加一个 GUI。问题是我觉得封装主 GUI 窗口的任何类都会有很多状态(所有子元素);最重要的是,它将有很多 setter,可能还有 getter、clear、color、size、position 和 refresh 功能。
一种选择是推进这个想法,并拥有一个非常大的公共界面来处理 GUI 使用的类型(
std::string
...std::vector<std::string>
),我希望对 UI 的控制越多,我需要的公共成员函数就越多。另一种选择是将程序状态传递给 GUI 并让它决定如何显示它,我担心这样做意味着它会给我更少的细节控制,并且会破坏关注点的分离,并意味着对程序状态的表示也需要在 GUI 中进行更改。
关于此事的任何意见都会有很大帮助。
如果有什么不同,这是一个使用 ncurses 抽象的 C++ gui。