user-interface - GUI 框架模式?

标签 user-interface frameworks

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




我们在嵌入式环境中进行开发,发现自己需要创建自己的 UI 框架。

我以前做过这个,但我有兴趣围绕框架的常见设计模式做一些研究。

我认为是模式的事物类型(有些深远):

  • 小部件聚焦/散焦
  • 小部件动画
  • 元素之间的数据共享
  • 将命令附加到小部件
  • 保存状态(MVC?)

  • 您对 GUI 框架模式有哪些推荐读物?

    最佳答案

    我有两个给你,回调或通知,也许这就是你所说的“将命令附加到小部件”,你想以某种方式对 UI 元素中的状态变化使用react。需要通知 Controller 已发生更改。

    Cocoa/UIKit 有一种称为“委托(delegate)”的模式和通知来完成此操作,其他使用回调函数或对象(Java Swing)或“信号和插槽”(QT)。

    我非常有用的模式是防止状态更改的能力,最简单的用例是输入验证,当小部件中的文本发生时,您希望防止小部件失去焦点不同意你的期望。 Windows 窗体过去在某些元素(不是全部)上具有此功能,但 Cocoa 可以做到这一点。这可以通过在回调中使用返回值或引用参数(或指针)来完成,在这些回调中,被调用者可以与原始小部件进行通信

    这些天将样式应用于 ui 元素,即在不改变功能的情况下改变外观也变得非常流行 QT 可以做到这一点,我相信很多其他库

    四人组装饰器模式有时也用于增强小部件的功能,可以通过装饰器完成可滚动的操作。这完全取决于您需要在 UI 元素上走多远。祝你好运,这不是一件容易的事

    EDT:尽可能应用 MVC。第一个候选人是任何类型的列表显示,不要让他们负责保留他们正在显示的项目。这绝对适用于组合框、列表框、表格和树,您可以为文本输入实现此功能,但这可能不值得开销。

    关于user-interface - GUI 框架模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/318527/

    相关文章:

    Java ServiceLoader 解释

    ASP.NET 权限框架?

    Swift - 图表框架 - 如何隐藏/显示线图?

    java - 使用 JTable.setRowHeight 更改行高不起作用

    javascript - 与 shouldComponentUpdate 一起使用时,react-native-draggable-flatlist 拖放重置

    excel - 如何修复 Excel 列表框无法将最后一个元素滚动到 View 中的问题

    java - 限制选中的复选框数量

    Java - JFormattedTextField AddActionListener

    ios - 如何在 Swift 框架中使用 Cocoapods?

    ios - 框架中的 Swift 协议(protocol)