企业架构应用模式读书笔记(四)
摘要:Web展现
最近几年企业应用中最大的改变无疑是基于Web浏览器的用户界面的崛起。优势在于:不需要部署任何客户端软件,一致的UI使用方法,便利的全球访问。
通常Web服务器上有着各种各样的配置文件来确定哪些URL该由那个程序处理,一个Web服务器可以支持多种程序。它的工作只是解释请求(request)的URL并把控制交给服务器端程序。
服务器端程序基本上可以分为两种基本的类型:script和server page
阅读全文
posted @
2006-12-25 20:55
tmfc
阅读(2620)
推荐(0) 编辑
企业架构应用模式读书笔记(三)下
摘要:结构映射模式
当人们谈论对象-关系映射时,大部分的人都是在讨论结构映射模式,大部分模式都和Table Data Gateway无关,某些可以用在Row Data Gateway或Active Record上,大部分都需要用在Data Mapper上。
映射关系
关键点是联系对象和关系的不同的方法,这会引出两个问题。第一个问题在表现(representation)上,对象保持引用而关系数据库保持的是键的关联。第二个问题是,对象可以很容易的使用集合来保持多个与它有关的其他对象的引用,但是关系数据库却正好相反,相关对象会有一个到主对象的反向的引用。比如一个部门有多个员工,部门对象持有多个员工的引用,但是再关系数据库中,每个员工的数据行中会有一个到部门表的外键连接,而不是在部门表中引用多个员工(因为关系数据库不支持这样做)。
解决表现问题的方法是在对象中保持一个Identity Field,使用它来作为关系数据库的键。当你访问数据库中的外键时,你使用的是Foreign Key Mapping来连接适当的对象间的连接。如果你没有在Identit
阅读全文
posted @
2006-12-19 19:54
tmfc
阅读(2480)
推荐(0) 编辑
企业架构应用模式读书笔记(三)上
摘要:架构模式
架构模式的选择对后续的程序开发有着深远的影响并且难以切换(难以从一种模式重构到另一种),所以必须仔细的选择架构模式。
将SQL语句嵌在逻辑代码中会显得非常的丑陋,DBA也希望能够通过了解SQL语句来决定怎样对数据库进行索引,所有这一切的原因让我们倾向于将访问数据库的SQL语句从领域逻辑中分离出来。
以数据表结构来组织类的结构是一个好主意,这样类和数据表可以一一对应。这些类组成了一个数据表的Gateway,Gateway主要分为两种,Row Data Gateway和Table Data Gateway。
Row Data Gateway中,数据表中的每一行对应于一个对象实例,比较自然的符合了面向对象的思想。
Table Data Gateway中,整个数据表只需要一个对应的对象实例。而用来储存数据的则是Record Set,一个通用的数据结构,适合于任何一张表。
阅读全文
posted @
2006-12-18 20:29
tmfc
阅读(3584)
推荐(0) 编辑
企业应用架构模式读书笔记(二)
摘要:三个主要的模式:Transaction Script,Domain Model,Table Model
最简单的方法是使用Transaction Script,Transaction Script本质上就是从表现层接受输入,进行验证和计算,保存进数据库,调用其他外部操作并且返回更多的信息,帮助计算并组织数据给表现层的过程。基本上就是将用户可能做的事情组织成一个个的函数,所以可以将其想象成动作的脚本,或者一个个事务。
Transaction Script的优势:
是几乎每个开发者都了解的简单的过程模式
配合使用简单的数据库层模式,如Row Data Gateway,Table Data Gateway时工作的很好
非常明显的边界:以打开事务开始,关闭事务结束。
但是,在领域逻辑变得越来越复杂时,Transaction Script也会有很多劣势,会出现很多难以消除的重复代码,子方法越来越多后,缺乏清晰的结构。
这个时候,就该以面向对象方式处理逻辑的Domain Model模式登场了。我们主
阅读全文
posted @
2006-10-10 17:09
tmfc
阅读(3208)
推荐(0) 编辑
企业应用架构模式读书笔记(一)
摘要:分层是用来分割复杂软件系统的最常用手段之一。如:操作系统建立在设备驱动和CPU指令上;FTP建立在TCP层之上,TCP建立在IP层上,IP建立在以太网上。
把分层结构想像成蛋糕,每一层都建立在它下一层上。意味着上层使用下层的服务,但是对更底层的服务一无所知。如,第四层使用第三层定义的服务,第三层使用第二层的服务,但是第四层并不了解第二层的服务。
分层的优势:
可以单独了解一层的东西,而不用管其他层
可以替换某一层的实现
最小化层之间的依赖
为建立标准做好准备
一个低层可以被很多高层使用(提高复用率)
分层的劣势:
分层对部分东西,而不是全部东西,有一个良好的封装。有时会引起连锁的更改,如,为了在用户界面上多显示一个属性,必须更改从数据库到UI之间的所有层。
额外的层会降低性能
阅读全文
posted @
2006-09-26 21:33
tmfc
阅读(4746)
推荐(0) 编辑