1.分层架构:分层架构是使用最多的架构模式,通过分层使各个层的职责更加明确,通过定义的接口使各层之间通讯,上层使用下层提供的服务。分层分为:严格意义上的分层,一般意义的分层。严格意义的分层是n+1层使用n层的服务。而一般意义的分层是上层能够使用它下边所有层的服务。领域驱动设计的分层定义:UI层,UI控制层,服务层,领域层,基础设施层。
2.MVC架构:MVC架构相信做软件的都听说,主要是为了让软件的各部分松耦合,现在好多根据MVC思想构建的框架如:Spring MVC,Structs2,ASP.Net MVC等。MVC是Model View Control的简写,他的原理是什么那,比如拿web来举例吧。当一个web请求来了以后View接收这个请求,随即把请求转发给Control进行处理,Control通过分析请求的类型等信息决定加载哪些Model,当Model加载完成以后Control通知Model已经加载完毕,这是View就去读取Model数据进行显示自己。MVC还有一个衍生架构叫MVP,因为MVC的View跟Control和Model都有耦合关系所以为了解除View和Model之间的关系,View不直接读取Model而是通过Control来转发View需要的数据。还有一个衍生架构叫MVVP,就是增加了一个ViewControl的层,用来辅助视图的生成,这样View的功能更加简单只是用来显示不包含其它的功能,而且有了ViewControl使多视图或替换视图很方便。MVP微软的WPF就是使用这种架构。
3.微内核架构:微内核架构就是做一个稳定通用的内核,也就是给软件设计一个强劲的心脏。如果需要更多功能通过在内核外部再封装一层对软件进行扩充,微内核提供基本的接口供外部调用,这些接口一定要通用,并且提供事件的机制告诉外部内部发生的事件,这样就是内核与外部完全隔离。微软操作系统就是按照微内核设计的。我之前做了一个Gis组件当初思想也是这个样子的,但是当初不知道还有微内核架构,有了对微内核的深入理解会进一步完善那个Gis组件。
4.元模型架构:元模型架构就是有元数据支撑的架构,现在使用的也很广泛,比如:ORM,.Net 类的设计等都是元数据支持的。元数据有自我描述性比如ORM会描述类对应数据库中的表属性对应数据库里的字段,还有IOC类中的引用需要注入哪个类等等都会通过元数据的形式实现。IOC框架通过解析元数据信息使注入和被注入类只通过接口依赖,这样替换注入类很方便。元数据架构是很灵活的架构,可发展空间非常大,元数据架构会经常用反射技术或者动态代码生成技术。我之前做了一个ORM就是用到的元数据架构,我还想给ORM添加依赖注入面向切面编程等特性都很方便的。
5.管道-过滤器架构:这个模式就像是工厂的流水线,生产原料通过流水线经过很多环节进行处理变成产品。软件也是一样的,网络OSI7层就是消息通过管道内部的很多步处理对消息进行加工过滤转换。再举一个例子,两家企业需要信息交换,但是企业的信息格式和描述规则都不相同,如果想达到交换必须经过处理,所以我们就得用管道过滤器模式,通过管道过滤器模式信息进入管道我们会在管道里添加各种处理功能,比如:数据验证,信息加密,信息解密,信息压缩,信息解压缩,格式转换等功能,对消息进行处理以符合我们要求的消息格式,而且如果需要添加一个新的处理只要把处理的功能插入到管道中即可,这样达到最大的灵活性。应用此模式的有:ASP.net请求模型,Spring 对象构造,Structs 数据请求等。