您的位置:首页 > 运维架构 > 网站架构

架构设计模式概要总结

2014-10-14 08:49 211 查看
1、MVC---->MVP---->MVVM:这三者是进化关系,一般到特殊。MVC是比较笼统的,平台无关的。而MVVM则是针对WPF的,仅适用于WPF。

2、AddIn---->MEF:AddIn(PlugIn和AddIn同义)是比较正统的、经典的插件开发模式,相对完整,但比较复杂。而MEF一般在WPF下使用,相对来说,抽象和封装程序更高,更容易使用。

3、架构模式和设计模式:两者没有严格的区别,只是在关注点和抽象层次上有一定的差别。一般而言,架构模式是关注关键性需求,强调抽象结构,而不是实现;设计模式可能关注关键性需求,也可能关注通性问题的解决,强调的问题解决的具体过程抽象。两者都强调开放性和扩展性。很多情况下,架构模式是会综合应用各种设计模式,并且以某种设计模式为架构模式的核心。

4、插件技术(MEF/AddIn/PlugIn)的核心是:反射和契约(接口)。过程如下:
     (1)定义Host端和AddIns共用的接口(IContract);
     (2)定义AddIns,要遵守IContract接口,可以通过特性(Attributes/Metadata)对AddIn进行自我描述
     (3)定义Host端:加载AddIns、组装AddIns、呈现AddIns(可以以菜单形式)、调用AddIns;
    插件技术具有很强的开放性和扩展性,可以动态地,甚至在运行时添加插件。但是也有一定的缺点:
     (1)AddIn之间的通信困难。解决办法是添加Shell层,进行消息转发;
     (2)AddIn和主程序(Host)的通信能力有限,对接口(IContract)设计要求高。(可以适配器模式对IContract接口进行包装转化)

5、AddIn模型通信过程:

(1)AddInHost通过AddIn的InnerOperation()操作AddIn的内部;
(2)AddInHost通过ManipulateAddIn()和AddInList协调AddIn之间的通信;
(3)AddIn通过OuterOperation()或/和AppContext操作AddInHost
  如此,即实现了全面的的通信协调
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐