我们正在嵌入式环境中开发,并发现自己需要创建自己的UI框架.
我以前做过这个,但我有兴趣对框架的常见设计模式进行一些研究.
我认为是模式的东西类型(有些深远):
小工具焦点/散焦
小部件动画
元素之间的数据共享
将命令附加到窗口小部件
保存状态(MVC?)
您对GUI Framework模式有什么建议的阅读?
我有两个回调或通知,也许这就是你所谓的"将命令附加到小部件",不知怎的,你想对UI元素中的状态变化作出反应.需要通知控制器发生了变化.
Cocoa/UIKit有一种称为"委托"的模式和完成此操作的通知,其他使用回调函数或对象(Java Swing)或"信号和插槽"(QT).
我非常有用的模式在野外不会经常出现阻止状态变化的能力,最简单的用例就是输入验证,你想要防止当小部件中的文本出现时小部件失去焦点不同意你的期望.Windows Forms曾经在某些元素上拥有它,而不是所有元素,Cocoa可以做到这一点.这可以通过在回调中使用返回值或引用参数(或指针)来实现,其中被调用者可以将其传递回原始小部件
这些天应用样式到ui元素,即改变外观而不改变功能也变得非常流行QT可以做到这一点,我相信很多其他的库
Gang of Four Decorator模式有时也用于增强小部件的功能,使可滚动的东西可以通过装饰器完成.这一切都取决于您需要使用UI元素的距离.祝你好运,这不是一件容易的事
EDT:在任何地方应用MVC.第一个候选人是任何类型的列表显示,不要让他们负责保留他们正在显示的项目.这肯定适用于组合框,列表框,表格和树,您可以实现此文本输入,但这可能不值得开销.