应用flyweight模式控件?

时间:2011-07-19 17:43:18

标签: optimization controls design-patterns

我的应用程序包含一个最多可包含100个单元格的网格。我想在每个单元格中添加自定义控件。自定义控件的所有实例都从共享存储库中获取数据。控件看起来完全相同,除非用户可以独立地与每个单元格中的控件交互。

我现在面临的问题是每个控件的创建最多需要50毫秒,这意味着对于10x10网格,填充网格需要5秒钟。

我正在考虑使用flyweight。我不熟悉这种模式。我唯一知道的是它允许在许多“客户”之间共享一个对象。但不确定如何完成,因为每个控件只能分配给一个单元格(父级)。我不能分享控制权,可以吗?

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这看起来有点像我试图在OS / 2的Presentation Manager下创建我的第一个类似Excel的应用程序。那是在1990年,如果我没记错的话(是的,我已经老了)。事实证明,创建与我的工作表中的单元格一样多的编辑控件是不可能的。

不是从头开始创建所有控件,而是对控件进行“预览”。在大多数情况下,仅显示文本就足够了,就像Excel一样。

如果确实需要,只创建控件,例如用户点击一个单元格。保持此控件保持活动状态,直到用户单击另一个单元格,按Enter键,...