首先分清 设计模式、框架、架构、平台的区别
http://www.cnblogs.com/chehaoj/archive/2010/12/09/1901049.html
从小到大:
设计模式 < 框架 < 架构 < 平台 简单说架构就是系统的逻辑构想,而框架就是该构想的具体实现。
1、设计模式:模式是最小的,但是越小越灵活,可重用的范围是最广的。
为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单。那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类、对象和接口之间的关系,是前人总结的经验。比如我要在代码中实现一个全局唯一的配置类,那么就使用Singleton模式。设计模式在实际编码工作和设计框架时会被使用到,而更高层的架构和平台则不会太关注它。
2、框架 Framework:框架就是基础设施,是相关软件的公共部分,可以是规范也可以是产品...框架产品通常由众多类库构成...
做WEB开发接触到最多的框架可数ORM框架,ORM框架只是所有数据关系映射框架的统称,具体的如NHibernate、ActiveRecord等,框架是为了解决特定问题而存在的,其它诸如模板框架、缓存框架,框架不能直接使用,需要二次开发。
3、架构 Architecture 架构就是设计蓝图,是架构师的设计成果...框架产品是架构实现的一个实例
从大的层面来说,比如针对公司业务的B2C网站系统架构,里面可能会用到多种解决各方面问题的框架,关注的是技术整合、扩展、可维护性。换个角度,在框架中也会涉及到架构问题,比如开发NHibernate框架,也需要考虑如何进行设计。
4、平台
平台的概念类似框架,但又结合的架构的考虑,它是更高层面上的“框架”,准确说是一种应用。它是针对企业用户,为解决企业业务需要而形成的产品。
一个框架可能使用了多个模式,而一个架构有可能应用了多个框架,这样一个大型系统的设计基本从主骨干到骨架基本能够被设计者考虑设计到,也可以想见,一个系统被细化成了很多工作量,例如一个部分细化到工厂模式,那么就可以要求程序员实现工厂模式的代码即可。
下边讲架构的按层分类
1、网络应用程序的架构按层数分为:2层架构、3层架构、N层架构。
2、其中两层架构的代表有两个:B/S架构 和 C/S架构。
C/S架构:是客户机/服务器,即client/server的缩写。客户的业务逻辑集中在客户端,因此被称为“胖服务器”。 如图所示:
B/S架构:浏览器/服务器,是Browser/Server的缩写。 业务逻辑和数据操作都集中在服务器端,因此又称为“瘦客户端”。如图所示:
C/S 架构 和B/S架构的区别:
(1)B/S 的产品升级很方便,比如说一个网站,他做了一些新的排版,只用你刷新或者重新点开这个网页,即可看到最新版;
但是C/S 的产品升级就需要下载最新版的客户端,然后卸载掉以前的版本,安装新版本,才能体验到新的功能和界面体验。
(2)B/S 是基于广域网的,交流互动很方便,而C/S 的是基于局域网的,如果一个员工外出期间想要了解工作进展,就没办法获取信息,只能在局域网中才能看到,在外网是看不到的。
(3)B/S 不利于用户管理。C/S相对比较容易管理。
3、三层架构:是指将网络应用程序进一步划分,分为表示层。业务逻辑层。数据访问层,如图所示:
三层架构的代表是:MVC架构,model-view-controller 模型-视图-控制器
Model:负责封装应用程序的数据和业务逻辑
View:负责应用程序的显示
Controller:负责接收用户的输入
4、N层架构: 就是把能分出来的都分为一层,目的是降低层与层之间的耦合度,提高开发效率,降低维护成本。不说微软的 .NET 平台,前Sun公司的 Java EE平台。