文档/视图或者复合应用程序体系结构有哪些好的资源?

时间:2020-03-06 14:33:27  来源:igfitidea点击:

最近,我一直在研究相对面向数据的应用程序。通常,它们倾向于充当由以奇怪方式关联的类表示的数据的编辑器。我一直通过为每种类型的对象使用一个" UserControl"来处理它,并且随着选择的更改,程序将显示该对象的适当编辑器。

我为此制作的"框架"感觉笨拙而混乱。通常,我有一个两窗格的界面,左侧有一个"项目选择"控件,右侧有"工作区"。用户界面必须完成大部分工作,即通过确定要显示的"用户控件"来实现对项目选择的响应,并实现诸如undo的行为,并询问用户是否要保存数据,然后才能更改项目。这篇文章的灵感来自我正在与同事一起工作的一个不错的"使我们的构建过程更轻松"的应用程序,但是在精心设计的重写可能会比当前代码完成速度更快的情况下,它确实失控。

通过阅读一些C ++书籍,我对文档/视图体系结构有了一定的了解。我知道,.NET中与之对应的更现代的版本可能是Composite UI Application块。问题是,除了这些主题的快速演练或者操作方法外,我再也没有看到任何其他内容。从来没有从"我们应该如何为此设计应用程序"的角度出发,而是从"将其粘贴到应用程序中并且我们将会理解!"的角度出发。我花了一个或者两个小时来浏览CAB文档,但这让我有些困惑。我不喜欢CAB主要是因为我很好奇事情的幕后运作方式,如果我能够在使用框架之前实现一个类似模式的简单版本,我会更感激。

我真正认为我需要的是专注于这个问题的网站或者书籍。我似乎没有得到的最​​大部分是如何将关注点分离到适当的位置。我习惯于使用几种方法来设计数据类以使用数据,似乎这就是控制器对象的工作?我们认为哪些资料对本主题的介绍有用?我看过许多文章,这些文章都绘制了类似这样的漂亮图表,并且我对这些体系结构的工作原理有一个高级的了解。我认为我找不到合适的资源来教我底层的"如何实现"这一部分。

解决方案

我发现Martin Fowler的这篇文章很好地概述了各种UI架构。希望能帮助到你 :)

我接受@Luke H的回答,因为它最终使我获得了一些相当不错的资源。

  • 马丁·福勒(Martin Fowler)的书看起来很抢手,正排在我的队列中。
  • 杰里米·米勒(Jeremy Miller)的《构建自己的CAB系列》做得非常好。
  • 看起来我对设计模式有点太不懂了,无法继续,因此我正在阅读《 Head-First设计模式》,然后阅读《四人帮》一书,以帮助实现这一目标。之后,我计划消化福勒的作品。