10_常用JavaEE设计模式

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

POJO(plain ordinary java object) 简单无规则java对象
• 纯的传统意义的java对象。就是最基本的Java Bean,只有属性字段及 setter和getter方法!。
12
http://blog.csdn.net/qjyong
java培训
目标
Content
提 纲
VO(value object) 值对象
• 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但 应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要。 同 DTO(数据传输对象),在web上传递。
BO(business object) 业务对象
• 封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。
java培训
MVC模式
MVC
模型Model:用于处理业务逻辑和表示业务数据 视图View:数据的展示 控制器Controller:用于接收请求和控制程序的流程
MVC的处理过程
首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理, 然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相 应的视图格式化模型返回的数据,并通过视图呈现给用户
• 要注意降低层与层之间的依赖
6
http://blog.csdn.net/qjyong
java培训
目标
Content
提 纲
MVC
7
http://blog.csdn.net/qjyong
java培训
何谓设计模式
设计模式为软件设计问题提供标准的解决方案
8
http://blog.csdn.net/qjyong
20
http://blog.csdn.net/qjyong
java培训
总结
应用程序三层、四层体系结构 面向接口编程 MVC DAO 抽象工厂
21
http://blog.csdn.net/qjyong
java培训
工厂模式
简单工厂:又叫静态工厂方法 工厂方法 抽象工厂
17
http://blog.csdn.net/qjyong
java培训
简单工厂
简单工厂:又叫静态工厂方法。由一个工厂对象决定创建出 哪一种产品类的实例。
public class DaoFactory{ public static AccountDao getInstance(String type){ if(type.equalsIgnoreCase("mysql")){ return new AccountDaoMySQLImpl(); }else if(type.equalsIgnoreCase("Oracle")){ return new AccountDaoOracleImpl(); } }
工厂方法
工厂方法:定义一个创建产品对象的工厂接口,将实际创建 工作推迟到子类中。
19
http://blog.csdn.net/qjyong
java培训
抽象工厂
抽象工厂:提供一个接口,用于创建相关工依赖对象的家族, 而不需要明确指定具体类。
public interface DaoFactory{ //工厂方法 public AccountDao getAccountDao(); public CategoryDao getCategoryDao(); } public class MySQLDaoFactory implement DaoFactory{ public AccountDao getAccountDao(){ return new AccountDaoMySQLImpl(); } public CategoryDao getCategoryDao(){…} } public class OracleDaoFactory implement DaoFactory{...} //使用 DaoFactory factory = new MySQLDaoFactory(); //配置到daofactory.properties AccountDao dao = factory.getAccountDao();
Java高端培训
JavaEE常用设计模式
Java Web 应用开发
演讲人:邱加永
EMAIL: qjyong@gmail.com
Hale Waihona Puke Baidu
java培训
目标
Content
提 纲
应用程序的分层体系结构 JavaEE设计模式
MVC模式 Dao模式
• Dao模式结合工厂模式
2
http://blog.csdn.net/qjyong
表示层

软件层的特征:

业务逻辑层
数据库
3
http://blog.csdn.net/qjyong
java培训
应用程序的分层体系结构
四层结构:
表示层: 业务层:业务逻辑层负责 完成应用程序的逻辑功能 ,包括调用持久层完成实 体对象的存取、安全检查 ,事务控制等。 持久层:封装了业务数据 的访问细节(实体对象的存 取),为业务层提供了面向 对象的API。 数据层:
9
http://blog.csdn.net/qjyong
java培训
MVC在Java Web中的应用
MVC是JSP编程中的Model2体系结构的一种实现
M:Service类、实体类、Dao类 V:JSP C:Servlet
10
http://blog.csdn.net/qjyong
java培训
java培训
分层体系结构的优缺点
优点
可维护性
• 修改某一层的代码,不会影响其它层的代码。
可重用性
• 下层的代码可以被不同的上层代码重用
可扩展性
• 为软件系统添加新的功能更加容易
可管理性
• 可将工作分解给不同的开发小组
缺点
不适合开发简单的软件系统 增加了调试的困难 对软件设计人员的要求比较高
降低业务层组件与数据来源的耦合度 数据存取逻辑被封装在Dao对象中,可以降低程序开发的困难度 集中管理企业应用程序的数据存取逻辑 简化企业应用程序存取多种数据来源的方式
14
http://blog.csdn.net/qjyong
java培训
DAO模式使用
DAO模式的实现至少需要以下三部分:
MVC与四层结构的对应关系
11
http://blog.csdn.net/qjyong
java培训
几个名词
PO(persistant object) 持久对象
在o/r映射的时候出现的概念。通常对应数据模型(数据库),本身还有部分 业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单 的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。 PO中应该不包含任何对数据库的操作。
DAO接口:用来公开类所提供的功能,即声明本类提供的所有数据库 操作方法。 DAO接口的实现类:根据具体的数据来源实现DAO接口中所声明的方 法。 DAO工厂类:用来产生DAO接口实现类的实例。
15
http://blog.csdn.net/qjyong
java培训
示例
16
http://blog.csdn.net/qjyong
java培训
应用程序的分层体系结构
经典的三层结构:
表示层:提供数据输入、检验与数据呈现的应 用程序组件。就是与用户打交道的UI界面。( GUI, Web页面 ) 业务层:提供商业逻辑服务的应用程序组件。 数据层:负责存放持久性业务数据的持久化存 储系统。(Database、XML) 每个层由一组相关的类或组件构成,共同完成特 定的功能。 层与层之间存在自上而下的依赖关系。 即上层 组件会访问下层组件的API,而下层组件不应 该依赖上层组件。 每个层对上层公开接口,封装实现细节。当某 一层的实现发生变化,只要它的API不变,就 不会影响其他层。
} //使用 AccountDao dao = DaoFactory.getInstance("mysql");
18
public static CategoryDao getInstance(String type){ ...... }
http://blog.csdn.net/qjyong
java培训
DAO模式
13
http://blog.csdn.net/qjyong
java培训
Dao模式简介
Data Access Object 模式是JavaEE设计模式中的一种 DAO模式的主要目标是:将数据存取逻辑封装成一个对象 (DAO对象),对于业务层组件来说,DAO对象是一个 “与数据来源无关的数据存取接口”。当数据来源必须更换 时,只要改写DAO对象,而不会影响到业务层组件的使用。 优点:
表示层 表示层
工具类 辅助类 拦截器
业务逻辑层 业务逻辑层 持久层


数据库
数据层
4
http://blog.csdn.net/qjyong
java培训
理解面向接口编程
依赖于接口,不要依赖于具体的实现
表示层
业务逻辑层接口
业务逻辑层实现
持久层接口 持久层实现
数据库
5
http://blog.csdn.net/qjyong
相关文档
最新文档