`
forchenyun
  • 浏览: 310035 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

J2EE设计的五个原则

    博客分类:
  • Java
阅读更多

设计时必须作出的五个决策:

1. 业务层的组织结构——组织业务逻辑

1) 使用过程式设计

i. 事务脚本(Fowler):通过过程来组织业务逻辑,其中每一个过程用来处理来自表示层的一个单独的请求。这样做使得实现行为的类和存储状态的类分开

ii. 事务脚本设计的结构:大型的事务脚本和大量的小数据对象

事务脚本

事务脚本

数据对象

行为

状态

2) 使用面向对象设计

i. 领域模型(对象模型):Fowler把用来开发业务逻辑的面向对象方法称为领域模型(Domain Model)。它能充分利用继承和回环调用等特性。

ii. 领域模型的结:兼具状态和行为的小型类

行为

状态

3) 数据表模块(Table Module)模式(不推荐)

比事务脚本模式更加结构化,因为对于每个数据库表,它都定义了一个数据表模块类,这个类实现操作对应数据表的代码,和事务脚本一样,它也把状态和行为分到不同的类里面。

2. 暴露给表示层及其他客户程序的接口——封装业务逻辑

1) EJB session façade

使用session façade封装业务对象,存在会话bean只能运行在ejb容器里这一不足。

2) POJO façade

是一个pojo而非ejb,事务管理和安全等服务则由aop而不是ejb容器提供。

pojo façade无法参与由远程客户发起的分布式事务)

3) 暴露领域模型模式(Exposed domain model pattern

表示层直接调用领域对象而不是通过façade。但是这样就增加了表示层的复杂度,因为表示层必须管理数据库连接。

注:将持久层领域对象返回给表示层的代码特别容易出错。由于表示层可能尝试访问业务层未加载的对象(在hibernate中,这是因为延迟加载的问题),因此产生运行时错误的风险也会加大。如果使用JDOhibernateEJB3,你可以把领域对象模型暴露给表示层,并允许业务层将持久领域模型返回给表示层,从而避免这个问题(这就是Open session in view(这里我的理解就是在业务逻辑里面写持久层操作代码)。当表示层游历于领域对象之间的关系时,持久层框架就会加载它访问的对象,这就是所谓的延迟加载技术。

3. 持久层如何访问数据库。

1) 直接使用JDBC存在的问题

i. 开发和维护sql困难而且耗时

ii. Sql缺少可移植性

iii. 编写jdbc代码耗时而且容易出错

注:有时为了取得最佳性能,我们必须使用sql的特定功能,包括厂商提供的专有特性,这时我们就不能使用即时生成sql的持久层框架。

2) 使用ibatis

3) 使用持久层框架

Hibernate JDO

4. 处理数据库事务中的并发(单个数据库事务)。

1) 隔离的(isolated)数据库事务

存在性能较低的瓶颈,可以考虑使用锁机制替代。

2) 乐观锁

乐观锁的工作原理是让应用程序检测它即将更新的数据是否已被另一个事务修改。

通常是在表中增加一个版本字段。

适用于并发更新的几率极小,此外应用程序不是阻止并发更新,而是检测并发更新并回滚。

3) 悲观锁

读取某些记录时先锁定这些记录,阻止其他事务访问这些记录。具体细节由数据库决定。

5. 处理长事务中的并发(多个数据库事务)。

1) 乐观离线锁模式(optimistic Offline Lock

用户要等待回滚,因此等待时间过长。

2) 悲观离线锁模式(Pessimistic Offline Lock

在编辑过程开始之初,锁定共享数据(由应用程序进行锁定而不是数据库)。

分享到:
评论

相关推荐

    JAVA架构设计原则与J2EE必读书目推荐

    JAVA架构设计原则与J2EE必读书目推荐

    基于J2EE的财务管理系统设计与实现(完整论文)

    4.1显示层设计原则 12 4.2控制层设计原则 12 4.3控制层设计原则 13 4.4数据访问层设计原则 13 5系统界面的演示 14 5.1 登录用户界面 14 5.2用户管理界面 16 5.3收支管理界面 17 6系统测试 19 6.1概要 19 6.2测试对象...

    J2ee 博客系统 毕业设计 课程设计

    1.4 设计原则 8 1.5 专业术语与缩写解释(如表1) 9 2 运行架构 10 2.1 基本设计理念 10 2.2 总体结构图设计 10 2.3 运行环境设计 11 3 网络平台 11 3.1 系统角色分配 11 3.2 软件结构 12 3.2.1 方案设计 12 3.2.2 MVC...

    J2EE分层设计

    现层:主要是客户端的展示。 服务层:直接为客户端提供的服务或功能。也是系统所能对外提供的功能。 领域层:系统内的领域活动,pojo对象。 DAO层:数据访问对象,通过领域实体...5、每个接口的职责范围明确有界。

    多层J2EE系统的架构与模式设计

    本文首先考察企业级应用的一般概念和需求,然后简要阐述面向对象程序设计的基本原则,并结合软件工程的思想来讨论多层的J2EE应用架构,分析它们满足企业级应用的方式,,再通过讲述常用的几种Java设计模式和Java反射...

    J2ee信贷客户管理系统

    本科毕业论文,j2ee,信贷客户管理,目 录 摘 要 I Abstract II 第一章 绪论 1 1.1 课题背景 1 1.2 系统设计目标 1 1.3 研究方法及设计思路 2 1.4 系统开发原则 3 1.5 可行性分析 4 1.6 本章小结 4 第二章 技术和...

    J2EE高级框架实例源程序

    J2EE高级框架实例源程序全面细致地介绍J2EE的常用框架Struts,Hibemate和Spring,同时对相关的软件开发思想,面向对象的原则以及常用的设计模式都有所涉及。

    springboot+vue基于j2ee企业人力资源管理系统设计与实现(论文+项目源码)

    绪论 2 1.1 项目开发背景 2 ...3.3.1数据库设计的原则 9 3.3.2数据库表的设计 9 4系统功能模块实现 11 5 系统测试 14 5.1系统调试的目的和意义 14 5.2功能测试用例 14 总结与展望 15 参考文献: 16 致 谢 18

    基于J2EE的客户关系管理系统的设计与开发

    论文从实现客户管理管理系统的技术准备出发,首先简要介绍了J2EE的体系架构及其组件技术、UML建模技术,在明确客户关系管理系统的系统目标基础上,阐述了系统架构、系统功能、系统设计原则和系统设计方法;...

    基于J2EE的电力用户用电信息采集系统的设计与实现.pdf

    J2EE 电力用户用电信息采集系统的概要设计,包括设计目标与原则,系统结构与模块设计,数据库结构、数据字典以及系统的运行界面等。该采集系统的详细设计和各个功能的具体实现过程。对开发系统过程中的心得体会与...

    基于J2EE的网站购物系统.rar

    通过本系统的开发,以好用、易用、美观的原则为学校定制了一套统一的人机界面,按两大类功能模块即以编辑为主用来操作如增加、修改、删除等的请求,另一类则是浏览类,主要用来完成以再先为主的功能,如查询、浏览、...

    J2EE学习笔记

    4.2:面向对象设计原则 165 第五章:软件系统架构设计 167 第六章:J2EE专题学习 167 6.1:EJB 167 6.2:JMS 172 6.3:Socket 182 6.4:WebService 189 6.5:集群分布式应用(以JBOSS为例) 190 6.6:JNLP原理及应用: 190 ...

    最新分布式计算课件 J2EE的体系架构和设计思想,掌握RMI、EJB等编程技术

    通过本课程的学习,要求学生了解分布计算的发展、...通过学习,了解并行计算机体系结构的发展、流水线与超标量技术,掌握并行算法设计原则、并行程序的解析建模、使用消息传递模式编程。了解分布式的最新技术网格计算。

    J2EE武功秘籍

    面对浩瀚技术图书,总是深陷其中,很多时候查阅很麻烦,因此,计划自己整理一套千页技术图集,帮助记忆和理解一些关于J2EE相关知识。现将最新文档上传分享,希望大家继续关注,...2011.10.10 增加经典设计原则图片6张。

    24种设计模式介绍与6大设计原则

    我希望这本书的阅读者具备基本的代码编写能力,您是一个初级的 coder,可以从中领会到怎么设计一段优秀的代码;您是一个高级程序员,可以从中全面了解到设计模式以及 Java 的边角技术的使用;您是 一个顶级的系统分析...

    java课程设计-设计一个图形界面的计算器-完成简单的算术运算.doc

    系统设计原则 基于计算器系统要具有适用性广、操作简便等特点.本系统预计要达到以下几个目标 : (1)、满足以上的功能要求; (2)、能够运行在常见的计算机及其配置上; 三、设计思路 1.关于布局问题 本次课程设计...

    一个基于_NET环境的OA系统设计与实现

    论文首先归纳了办公自动化技术的现状以及发展趋势;...计,包括系统需求分析、设计目标、设计原则、功能设计、体系结构设计、数据 库设计和安全性设计。以.NET为开发平台,设计和实现了办公自动系统。

    J2EE体系统一,关于JDBC

    2、依据依赖倒转原则(依赖于抽象,不依赖于具体实现,针对接口编程)进行设计 抽象层:JDBC规范协议,定义出统一访问数据库的接口,是sun公司定义的标准 实现层:JDBC驱动程序,进行真实的数据库连接,由...

    J2EE学习笔记(J2ee初学者必备手册)

    第六章 设计原则与模式..................307 EJB学习笔记..................314 EJB前言................314 EJB2.0.....315 第一章 EJB介绍 .315 JavaEE@xuxiang 5 Java/JavaEE学习笔记Jonny xuxiang5612@sina.com...

Global site tag (gtag.js) - Google Analytics