跟我学软件系统数据访问层设计中所涉及J2EE核心设计模式——组合式的DTO(Transfer Object Assembler)模式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
1.1 跟我学软件系统数据访问层的模块设计中所涉及的 J2EE 核心设计 模式——组合式的 DTO(Transfer Object Assembler)模式
1.1.1 组合式的 DTO 模式(Transfer Object Assembler) 1、应用的技术背景
ProjectManagerTO projMgrTO =
projectManager.getData();//获得 ProjectManagerEJB 组件中的数据
//将 ProjectManagerEJB 组件中的数据添加到组合式的 DTO 对象中
pData.projectManagerData = projMgrTO;
2/3 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
public class ProjectDetailsData{
public ProjectTO projectData;
public ProjectManagerTO projectManagerData;
public Collection listOfTasks;
ServiceLocator.getInstance().getHome("ProjectManager",ProjectEntityHome.class);
ProjectManagerEntity projectManager =
projectManagerHome.findByPrimaryKey( projTO.managerId);
ProjectTO projTO = project.getData();
//获得 project EJB 组件中的数据
pData.projectData = projTO; //将 project EJB 组件中的数据添加到组合式的 DTO 对象中
ProjectManagerHome projectManagerHome =
...
}
(2)实现组合式的 DTO 对象类
public class ProjectDetailsAssembler implements javax.ejb.SessionBean {
...
public ProjectDetailsData getData(String projectId){
ProjectDetailsData pData = new ProjectDetailsData();
3、组合式的 DTO 模式类图和序列图 (1)组合式的 DTO 模式类图
杨教授大学堂,版权所有,盗版必究。 1/3 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(2)组合式的 DTO 模式序列图
4、组合式的 DTO 模式的代码示例 (1)定义组合式的 DTO 对象类
杨教授大学堂,版权所有,盗版必究。
1) 应用的客户常常需要从不同的业务组件(如会话 Bean 或者实体 Bean、DAOs 或者 其它的对象)中获得数据,而这些数据分布式地分布于不同的业务组件中。
2) 为了减少客户端的程序对这些分布式数据的访问,可以采用组合式的 DTO 模式来 集合这些分布式数据。
2、主要的技术特性 1) 通过从各个业务组件和实体组件中获得数据,并且再将各个数据组合起来以用于构 造复杂的 Transfer Object,将客户从不同的业务模型的处理中解放出来 2) 本模式应该是 Transfer Object 模式进一步深化,严格意义上来讲不是一个新的模式。
...
return pDat有,盗版必究。 3/3 页
ProjectHome projectHome =
ServiceLocator.getInstance().getHome( "Project", ProjectEntityHome.class);
ProjectEntity project = projectHome.findByPrimaryKey(projectId);
1.1 跟我学软件系统数据访问层的模块设计中所涉及的 J2EE 核心设计 模式——组合式的 DTO(Transfer Object Assembler)模式
1.1.1 组合式的 DTO 模式(Transfer Object Assembler) 1、应用的技术背景
ProjectManagerTO projMgrTO =
projectManager.getData();//获得 ProjectManagerEJB 组件中的数据
//将 ProjectManagerEJB 组件中的数据添加到组合式的 DTO 对象中
pData.projectManagerData = projMgrTO;
2/3 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
public class ProjectDetailsData{
public ProjectTO projectData;
public ProjectManagerTO projectManagerData;
public Collection listOfTasks;
ServiceLocator.getInstance().getHome("ProjectManager",ProjectEntityHome.class);
ProjectManagerEntity projectManager =
projectManagerHome.findByPrimaryKey( projTO.managerId);
ProjectTO projTO = project.getData();
//获得 project EJB 组件中的数据
pData.projectData = projTO; //将 project EJB 组件中的数据添加到组合式的 DTO 对象中
ProjectManagerHome projectManagerHome =
...
}
(2)实现组合式的 DTO 对象类
public class ProjectDetailsAssembler implements javax.ejb.SessionBean {
...
public ProjectDetailsData getData(String projectId){
ProjectDetailsData pData = new ProjectDetailsData();
3、组合式的 DTO 模式类图和序列图 (1)组合式的 DTO 模式类图
杨教授大学堂,版权所有,盗版必究。 1/3 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(2)组合式的 DTO 模式序列图
4、组合式的 DTO 模式的代码示例 (1)定义组合式的 DTO 对象类
杨教授大学堂,版权所有,盗版必究。
1) 应用的客户常常需要从不同的业务组件(如会话 Bean 或者实体 Bean、DAOs 或者 其它的对象)中获得数据,而这些数据分布式地分布于不同的业务组件中。
2) 为了减少客户端的程序对这些分布式数据的访问,可以采用组合式的 DTO 模式来 集合这些分布式数据。
2、主要的技术特性 1) 通过从各个业务组件和实体组件中获得数据,并且再将各个数据组合起来以用于构 造复杂的 Transfer Object,将客户从不同的业务模型的处理中解放出来 2) 本模式应该是 Transfer Object 模式进一步深化,严格意义上来讲不是一个新的模式。
...
return pDat有,盗版必究。 3/3 页
ProjectHome projectHome =
ServiceLocator.getInstance().getHome( "Project", ProjectEntityHome.class);
ProjectEntity project = projectHome.findByPrimaryKey(projectId);