架构设计模式概要总结
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
如此,即实现了全面的的通信协调
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
如此,即实现了全面的的通信协调
相关文章推荐
- 针对架构设计的几个痛点,我总结出的架构原则和模式
- 软件架构设计系列总结—10—表现层模式-MVC
- 架构设计的几个痛点_我总结出的架构原则和模式
- Android架构设计模式总结(MVX)
- 针对架构设计的几个痛点,我总结出的架构原则和模式
- 总结 - 设计模式,企业应用架构模式,架构模式
- java设计模式--基础思想总结--抽象类与架构设计思想
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 针对架构设计的几个痛点,我总结出的架构原则和模式
- 针对架构设计的几个痛点,我总结出的架构原则和模式
- Java设计模式概要总结
- 针对架构设计的几个痛点,我总结出的架构原则和模式
- 针对架构设计的几个痛点,我总结出的架构原则和模式
- 关于Gof设计模式的精辟总结
- 系统设计说明书(架构、概要、详细)目录结构
- 面向对象的设计模式的学习笔记,不断学习归纳总结ing
- 模式和架构读书笔记《.NET模式-架构、设计与过程》一
- 软件的架构与设计模式之模式的种类
- .NET设计模式(7):创建型模式专题总结(Creational Pattern)