(第2讲)各种架构

原创 2016年08月28日 18:08:25

首先分清 设计模式、框架、架构、平台的区别

http://www.cnblogs.com/chehaoj/archive/2010/12/09/1901049.html

从小到大:
设计模式 < 框架 < 架构 < 平台    简单说架构就是系统的逻辑构想,而框架就是该构想的具体实现。

1、设计模式:模式是最小的,但是越小越灵活,可重用的范围是最广的。

为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单。那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类、对象和接口之间的关系,是前人总结的经验。比如我要在代码中实现一个全局唯一的配置类,那么就使用Singleton模式。设计模式在实际编码工作和设计框架时会被使用到,而更高层的架构和平台则不会太关注它。

2、框架  Framework:框架就是基础设施,是相关软件的公共部分,可以是规范也可以是产品...框架产品通常由众多类库构成...

做WEB开发接触到最多的框架可数ORM框架,ORM框架只是所有数据关系映射框架的统称,具体的如NHibernate、ActiveRecord等,框架是为了解决特定问题而存在的,其它诸如模板框架、缓存框架,框架不能直接使用,需要二次开发。

框架有哪些?
C++语言的QT、MFC、gtk,
Java语言的SSHSSI
php语言的 smarty
python语言的django

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平台。


孙鑫VC++讲座笔记-(2)C++

孙鑫VC++讲座笔记-(2)C++    1    c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。2    C++中结构体和类可以通用,区别主要表现在访问控制方...
  • wangjiwei2010
  • wangjiwei2010
  • 2006年10月24日 10:31
  • 1008

007:了不起的分支循环

关于“打飞机”游戏的架构: 加载背景音乐 播放背景音乐(设置单曲循环) 我方飞机诞生 interval = 0 while True: if 用户是否点击了关闭按钮: ...
  • junwei0206
  • junwei0206
  • 2015年03月27日 17:08
  • 636

微服务架构 (一): 微服务架构的核心概念

微服务设计是架构设计。 所以, 微服务设计不应是一个讲求标准答案, 简单粗暴的设计过程。而应该是一个考量各方因素下的一个决策的过程。 所以, 在探讨微服务设计前, 我们先来探讨下, 所谓的微服务具体应...
  • u011790275
  • u011790275
  • 2016年08月08日 22:31
  • 2749

分享《架构真经:互联网技术架构的设计原则(原书第2版)》序言中的一段话

下面的一段话摘自《架构真经:互联网技术架构的设计原则(原书第2版)》序言,很有感触,拿出来分享一下: 马尔科姆·格拉德威尔在《异类》一书中提出了著名的“一万小时定律”,也就是说,任何凡人要成为...
  • lengyuewusheng99
  • lengyuewusheng99
  • 2017年11月11日 15:49
  • 311

全网最新:Netty源码剖析&NIO+Netty5各种RPC架构实战路线

深入浅出Netty源码剖析
  • yixueit
  • yixueit
  • 2017年12月14日 17:56
  • 55

架构真经 | 缓存为王

作者介绍:陈斌,易宝支付 CTO,《架构即未来》、《架构真经》等书译者,1024 学院互联网 CTO 班幽谷派掌门。 正文在商业世界中,人们常说“现金为王”。然而,在技术世界里,我们却说“缓存为王”。...
  • qq_35246620
  • qq_35246620
  • 2017年04月18日 23:48
  • 3354

SPRING技术内幕:深入解析SPRING架构与设计原理(第2版)-笔记(一)IOC解析

开始之前先说一下Beanfactory的结构原理:下图是springIOC解析的整个过程: IOC容器分为3个步骤: 1、定位 (1)Resource resource = resourceLo...
  • wzq6578702
  • wzq6578702
  • 2015年05月18日 23:08
  • 572

全网首部:Netty源码剖析&NIO+Netty5各种RPC架构实战演练

目录: 第1 章 : 第一部分、深入浅出Netty源码剖析 课时09:NioEventLoop接收客户端请求过程.avi 课时03:Netty服务器的构建.avi 课时16:NioEven...
  • yixueit
  • yixueit
  • 2017年12月19日 10:42
  • 108

【零基础入门Python学习笔记008】了不起的分支和循环2

method1.py method2: method3: 如果判断一次就需要花费一个CPU的时间,那么method就要比method2和method3多出400%的时间。...
  • SMF0504
  • SMF0504
  • 2016年03月10日 12:26
  • 592

第001讲:我和Python的第一次亲密接触 | 课后测试题及答案

点击打开链接第001讲:我和Python的第一次亲密接触 | 课后测试题及答案
  • GoodLuckAC
  • GoodLuckAC
  • 2015年10月22日 16:21
  • 487
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(第2讲)各种架构
举报原因:
原因补充:

(最多只允许输入30个字)