这个问题类似于
但我想问一些更具体的问题:我想知道微软用什么设计模式来构建他们令人印象深刻的桌面应用程序套件,包括VS 2008,Microsoft Office等。
任何人都有任何想法?我环顾四周,但最多只能找到模糊的细节。在这方面似乎没有很多信息。
编辑:好的,也许我会稍微放松一下这个问题:任何人都知道主要软件生产商(不仅仅是微软)是如何构建他们的桌面应用程序的?
答案 0 :(得分:1)
对于Windows窗体应用程序,我建议您试用复合UI应用程序块(CAB),您可以在MS站点中找到大量信息。实践。我自己并没有这样做,因为我主要是开发Web应用程序,但我有一些同事一直在使用它并且真正推荐它。更多信息here和codeplex:
如果您的目标是WPF应用程序,那么CAB就不那么好了。你最好看看什么叫做PRISM。我可以解释一下,为什么在WPF应用程序中PRISM比CAB更好,但是在互联网上已经有一个非常好的解释,你可以找到here以及codeplex:
这两种'解决方案'都是由Microsoft Patterns& amp;实践团队,可以在CodePlex找到......所以我认为这是一个很好的方法!
答案 1 :(得分:1)
您可能希望通过Rob Pierry,
查看有趣的文章 MSDN杂志中的Discover the Design Patterns You're Already Using in the .NET Framework
在.net中进行编程时,几乎每天都会使用Iterator,Observer,Decorator,Adapter,Strategy,factory等一些模式。
答案 2 :(得分:0)
嗯,在我谦逊的经历中,我已经看到并使用了一种名为PAC的东西:
演示文稿 - 抽象 - 控制
两个主要想法是:
在具体实现中,Presentation模块将低级UI事件转换为应用程序事件,控制器将事件流管理到更高级别。有些事件发送给某个经理,他们将它们分发到应用程序的处理部分(抽象)。
这样:
当然,许多其他模式都在使用,但这个主要架构是重用UI模块以及处理/业务模块的关键。
编辑:
我检索了一篇关于UI架构的精彩文章,比较了不同类型的架构,包括PAC:
答案 3 :(得分:0)
在Mac OS X上,Cocoa Web框架的设计强调了模型 - 视图 - 控制器方法的使用。我认为Apple在构建大多数应用程序时可能会使用MVC,而且大多数Mac开发人员似乎都使用相同的方法。但是,很难说,因为我无法访问Apple大多数应用程序的源代码。
答案 4 :(得分:0)
Gang of Four book中的设计模式都来自于检查实际软件应用程序并查看使用了哪些常见解决方案。我猜想书中提出的模式也被普遍化,对一般人群更有用。
鉴于这一事实,我希望任何中型或大型应用程序都至少包含少数几个模式或变体。
答案 5 :(得分:-1)
我不认为所有Windows(甚至大多数)桌面应用程序都会(或应该)使用一组设计模式。
虽然在服务器应用程序中大量使用的某些模式可能并不常见,但设计模式的使用会回到每个程序的预期用途。