- 浏览: 1086671 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
分散关注、松散耦合、逻辑复用、标准定义
基于组件的三层B/S结构概述
微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层。
表示层
位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面
业务逻辑层
业务逻辑层(Business Logic Layer)它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下 的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖 也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设 计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
数据层
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。
简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。
MVC和三层架构的异同点
相同的地方在于他们都有一个表现层,不同的地方在于其他的两个层
MVC--->V即View.是视图的意思。C即Controler.是控制器的意思。而M即Model,是模型的意思。
Controller
在 Java Web中这三个层一般的定义,一般在Java Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的Servlet 管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。所以它的功能就是控制器的基本功能,它就管转发,在V和M 之间转来转去。
Model
在Java Web里说的是JavaBean,JavaBean有比实体类更丰富的定义,在 JavaBean中除了其属性和字段,还可以有行为及其事件,JavaBean可以理解为普通Java对象。Java普通对象,就是符合Java规范的所 有对象,这和实体类完全是两回事。所以,我认为在MVC中。业务逻辑和数据访问应该放在Model层,也就是V负责展示数据,Controler除了转发 不做业务逻辑。真正的逻辑事务,数据访问,甚至算法都放到Model去。
再说三层架构和MVC的区别。在三层架构中没有定义 Controler的概念。这是最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。 当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。不一样的概念。虽然名字一样。
对于MVC
基本原则:业务逻辑代码应该写在 M 里面,而应用程序逻辑应该写在 C 里面。V 只是单纯的展示数据。
举个简单例子吧:用户往购物车添加一个商品
用户点击商品的“添加到购物车”按钮,引起一次请求。服务器开始处理该请求,过程:
1、检查当前用户是否有权限(比如是否已经登录、用户帐户状态、是否可以购物等)
2、检查要添加的商品ID是否有效、
3、检查要添加的商品库存是否足够
4、将商品加入购物车,并保存购物车状态
5、反馈信息
这上述流程中:
1: 是应用程序逻辑(一般由框架实现):因为和“添加商品到购物车”这个业务没有直接关系
2: 业务逻辑:不能购买不存在的商品,这是业务进行的基本条件
3: 业务逻辑:商品库存决定了是否可以购买此商品,这是业务进行的基本条件
4: 业务逻辑
5: 应用程序逻辑
有深刻理解了再继续添加吧。不对的,别只拍砖不指点啊
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
分散关注、松散耦合、逻辑复用、标准定义
基于组件的三层B/S结构概述
微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层。
表示层
位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面
业务逻辑层
业务逻辑层(Business Logic Layer)它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下 的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖 也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设 计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
数据层
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。
简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。
MVC和三层架构的异同点
相同的地方在于他们都有一个表现层,不同的地方在于其他的两个层
MVC--->V即View.是视图的意思。C即Controler.是控制器的意思。而M即Model,是模型的意思。
Controller
在 Java Web中这三个层一般的定义,一般在Java Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的Servlet 管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。所以它的功能就是控制器的基本功能,它就管转发,在V和M 之间转来转去。
Model
在Java Web里说的是JavaBean,JavaBean有比实体类更丰富的定义,在 JavaBean中除了其属性和字段,还可以有行为及其事件,JavaBean可以理解为普通Java对象。Java普通对象,就是符合Java规范的所 有对象,这和实体类完全是两回事。所以,我认为在MVC中。业务逻辑和数据访问应该放在Model层,也就是V负责展示数据,Controler除了转发 不做业务逻辑。真正的逻辑事务,数据访问,甚至算法都放到Model去。
再说三层架构和MVC的区别。在三层架构中没有定义 Controler的概念。这是最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。 当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。不一样的概念。虽然名字一样。
对于MVC
基本原则:业务逻辑代码应该写在 M 里面,而应用程序逻辑应该写在 C 里面。V 只是单纯的展示数据。
举个简单例子吧:用户往购物车添加一个商品
用户点击商品的“添加到购物车”按钮,引起一次请求。服务器开始处理该请求,过程:
1、检查当前用户是否有权限(比如是否已经登录、用户帐户状态、是否可以购物等)
2、检查要添加的商品ID是否有效、
3、检查要添加的商品库存是否足够
4、将商品加入购物车,并保存购物车状态
5、反馈信息
这上述流程中:
1: 是应用程序逻辑(一般由框架实现):因为和“添加商品到购物车”这个业务没有直接关系
2: 业务逻辑:不能购买不存在的商品,这是业务进行的基本条件
3: 业务逻辑:商品库存决定了是否可以购买此商品,这是业务进行的基本条件
4: 业务逻辑
5: 应用程序逻辑
有深刻理解了再继续添加吧。不对的,别只拍砖不指点啊
发表评论
-
设计模式(23种设计模式.AS3实现)
2011-10-13 02:04 0设计模式(23种设计模式.AS3实现) -
CutLoad 库 UI库
2011-08-22 22:17 0CutLoad 库 UI库 http://www.mk ... -
Alternativa3D资料
2011-08-15 18:52 0Alternativa3D资料 Alternativa3D资 ... -
[转]一个Collision类,其中的block方法可以实现两个物体之间的碰撞检测。
2011-07-30 02:35 1397第二个是书中的源代码给出了一个Collision类,其中 ... -
[转] 关于动态嵌入字体
2011-07-26 23:38 1493http://bbs.9ria.com/viewthre ... -
文字如何缩放?
2011-07-26 23:20 1256做个文件打印的东东,需要预览,就是把保存的Sprite类缩小再 ... -
大航海通信信息解析工具 --- 大航海通信信息解析工具梁冀南,吴亮-大航海 通信VO解析用的工具和类, 实用-- 需要配合DOKU 需要对CLASS 进行全路径
2011-07-25 22:51 0大航海通信信息解析工 ... -
FLASH CS3-4所带的 组件 打包SWC 其中带了 另附 YAHOO组件
2011-07-14 21:17 0FLASH CS3-4所带的 组件 打包SWC 其中带 ... -
Transform Tool 2 更新
2011-06-22 01:59 0本帖最后由 sun11086 于 2011-6-9 1 ... -
[转] 放出超多的Flash组件源代码
2011-06-21 21:45 3113奋战了2周,其实我本来 ... -
[新闻资讯] [Flash/Flex] ActionScript 3多线程框架-CMVC框架
2011-05-17 20:44 2027http://bbs.9ria.com/viewthread. ... -
(Robotlegs五子棋)HelloRobotlegs
2011-05-17 00:41 789(Robotlegs五子棋)HelloRobotlegs -
[转] 老板让俺总结的puremvc学习笔记
2011-04-10 05:48 1603http://bbs.9ria.com/viewthread. ... -
ASWING BETA2.0
2011-03-22 21:17 0ASWING BETA2.0 -
[转]贡献一个游戏的架构思路
2011-03-14 20:25 1824http://uh.9ria.com/space-12147- ... -
[转]http://www.uml.org.cn/softwareprocess/rjgc6.htm
2011-03-08 15:48 867http://www.uml.org.cn/softwa ... -
[转]XP 极限编程
2011-03-08 15:47 758http://blog.csdn.net/bluesmile9 ... -
一款简易的flash UI组件
2011-03-04 19:31 1187http://code.google.com/p/librau ... -
WeeMVC
2011-03-02 16:57 800http://weemvc.org/ API:-- htt ... -
[转]浅谈三层结构与MVC模式的区别
2011-02-28 12:03 1062有朋友谈到三层与MVC的 ...
相关推荐
ASP.NET三层架构是一种常见的软件设计...总结,ASP.NET三层架构为开发高质量、可维护的Web应用程序提供了一个强大而灵活的框架。通过学习PetShop这个示例,开发者可以更好地理解如何在实际项目中应用和实践三层架构。
C# 三层架构个人总结 C# 三层架构是一种常见的软件架构模式,旨在将应用程序分层処理,以提高代码的可维护性、可拓展性和可重用性。该架构模式将应用程序分为三层:UI 界面层、BLL 业务逻辑层和 DAL 数据访问层。 ...
例如,“asp.net三层架构总结与实例.docx”文档可能详细解释了如何在这一层中定义和实现业务对象及服务。 3. 数据访问层:主要任务是与数据库进行交互,包括数据的查询、添加、删除和修改等操作。在ASP.NET中,可以...
总结来说,三层架构设计是现代软件架构中的一项革命性思想,它不仅提高了软件系统的整体质量,还为软件开发带来了更高的效率。通过将系统分解成不同的层次,每一个层次都承担起自己独特的责任,开发者可以在各自的...
总结来说,VB.NET中的三层架构是一种高效且灵活的开发模式,它将应用分解为表示、逻辑和数据三个独立的部分,从而提高代码的可读性、可维护性和可扩展性。对于新手而言,理解并掌握三层架构的概念和实践,能够为他们...
总结来说,三层架构是一种有效的方式,将复杂的应用程序分解为独立的组件,便于维护和扩展。使用VS2012和SQL2008R2,我们可以构建出高效、可维护的系统,而类图则帮助我们更好地理解和设计系统结构。在压缩包中的...
这种模式在六层架构或三层架构中尤其有用,因为它可以灵活地更换或扩展不同的组件,例如在不同的数据库之间切换或更改UI框架。 举个实例,假设我们正在开发一个电商系统,六层架构下,表现层负责展示商品信息,业务...
总结来说,利用三层架构实现注册功能,需要分别设计并实现表现层、业务逻辑层和数据访问层,确保各层职责分明,同时利用SQL Server数据库进行数据存储。通过这种方式,我们可以构建出稳定、易于维护的注册系统。
**JSP-MySQL三层架构模板详解*...总结,基于JSP和MySQL的三层架构模板为开发者提供了一个清晰的框架,便于构建和维护Web应用程序。理解并熟练掌握每一层的功能及其相互间的关系,对于高效开发高质量的Web应用至关重要。
总结来说,这个".NET三层架构简单例子"展示了如何组织代码以实现登录和注册功能,通过分离关注点,使得每个层只关心其特定的任务,从而提高代码的可读性和可维护性。对于初学者,这是一个很好的起点,可以帮助理解...
### C# WinForm三层架构搭建详解 #### 一、引言 C# WinForm三层架构是一种常见的软件设计模式,它将应用程序分为表示层(UI层)、业务逻辑层(BLL层)和数据访问层(DAL层)。这种架构有助于提高系统的可维护性、可...
总结来说,"面向对象三层架构例子"是一个典型的软件工程实践,它通过分离关注点,提高了软件的可维护性和可扩展性。商场收银系统的实现,涵盖了从用户界面到数据库的完整流程,是学习和理解三层架构的实用案例。
在C#编程中,三层架构是一种常见的设计模式,它将应用程序分为三个主要部分:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这种架构有助于提高代码的可...
总结,"三层架构的代码"描述的是一个基于三层架构设计的应用程序,其中包含表现层、业务逻辑层和数据访问层,可能用于处理与学生管理相关的一系列操作。通过这样的架构,开发者可以创建出可维护、可扩展且易于测试的...
总结起来,这个项目展示了如何利用C#和ASP.NET构建一个具备完整功能的博客系统,通过三层架构实现了业务逻辑、数据操作和用户交互的分离。这种设计不仅有助于团队协作,还为未来的系统升级和维护提供了便利。在实际...
总结来说,三层架构和MVC模式各有侧重点。三层架构适用于整体项目架构设计,强调各层的职责分离,提高系统稳定性和可扩展性;而MVC模式是特定于表示层的一种设计模式,主要用于改善用户体验和代码组织。在实际项目中...
总结来说,PetShop的三层架构是一个很好的学习资源,它展示了如何在实际项目中应用软件设计原则,如分层、接口隔离和单一职责。对于想要提升.NET开发技能,尤其是理解和应用三层架构的开发者来说,深入研究PetShop的...
总结来说,这个"标准三层架构示例(源码)"是一个很好的学习资源,它可以帮助开发者深入理解.NET Web应用程序的开发流程,掌握C#编程和SQL Server数据库的结合使用,以及如何构建一个健壮且易于维护的三层架构系统。
总结来说,Java Web三层架构的配置涉及到多个层面,从表现层的请求映射到业务逻辑层的服务定义,再到数据访问层的数据库配置。理解并正确配置这些元素对于开发出高效、稳定且易于维护的Java Web应用至关重要。初学者...