欢迎来到天天文库
浏览记录
ID:9431354
大小:52.00 KB
页数:9页
时间:2018-04-30
《用.net实现领域对象适配机制及xml数据扩展》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、用.Net实现领域对象适配机制及XML数据扩展:为便于根据业务逻辑复杂性和业务数据特点灵活选择实现方式,通过引入适配机制,业务逻辑可以根据需要选择合适的实现模式.针对XML数据的层次性特点,借助XPath和XSLT提供专用的扩展,保证业务对象可以同时适应关系数据库和XML数据2种数据模型.测试结果表明借助适配机制,在数据模型修改时客户程序仍然可以保持稳定,借助专用XML技术实现的适配机制同样适用于XML数如果需要分享,请保留本段说明.xzbu.8/view-8771244.关键词:XML;.Net;领域对象;设计模式;数据传输对象:
2、TP311.132.4;TP311.132.3AImplementationofadaptivemechanismofdomainobjectandXMLdataextensionusing.NetWANGXiang(GraduateSchool,ChineseAcademyofSci.,Beijing100049,China)Abstract:Tofacilitatethecomplexityofthebusinesslogicandbusinessdatacharacteristics,theappropriateimpleme
3、ntationpatterncanbechosenforbusinesslogicaccordingtotherequirementsbyintroducingadaptivemechanism.WiththehierarchycharacteristicsofXML,businessobjectscaninvokerelationaldatabaseaswellasXMLdatausingtheexpansionprovidedbyXPathandXSLT.Thetestsdemonstratethatwiththeadaptiv
4、emechanismclientprogramcanremainstableevenwhendatamodelischanged.WithspecialXMLtechnologies,theadaptivemechanismcanalsoapplytoXMLdata.Keywords:XML;.Net;domainobject:designpattern;datatransferobjecto引言在领域驱动设计中,实现业务逻辑层主要有3种模式[1]:TransactionScript,DomainModule和TableModule
5、(见图1).图1实现所需工作量与业务逻辑复杂度的关系随着业务逻辑复杂程度的增加,采用各模式实现的工作景变化趋势有所不同;根据应用特点,3种模式各有优势.(1)TransactionScript:业务逻辑直接用SQL脚本与数据库交互,实现简单,但是限于SQL面向过程化的特点,完成复杂业务逻辑时工作量较大.(2)DomainModule:将业务数据封装为业务对象,适于业务逻辑复杂的应用,但需要0/R映射的支持.(3)TableModule:将业务数据组织成数据表方式,虽然对象化特征不如DomainModule明显,但适于展现层使用.应用
6、建设初期选择的实现模式随着业务需求和历史数据量的变化需要进行调整,此时要增加1个适应性机制,保证在尽量不影响客户程序的前提下,选择合适的实现模式.随着XML数据使用日趋广泛,须借助XPath,XQiiery和XSL为层次型数据增加专门的扩展机制,使得基于XML数据源的业务逻辑也可以采用上述3种模式实现.1概要设计1.1整体逻辑结构总体适配机制见图2.图2总体实现结构为业务服务增加抽象接口IDomainService,客户程序通过DomainScrviccFactory获得该抽象接口,这样客户程序不依赖于具体的业务服务实体类,仅依赖于
7、抽象的服务接门,当下层实现模式调整时,不影响客户程序;为了让框架可以同时适应关系数据库和XML数据,增加抽象接UIDataSource,代表不同的数据源对象;IDataMapper负责根据不同的数据源完成关系数据或XML数据与业务对象的映射;为了减少DomainScrviccFactory对具体业务服务对象产主的依赖性,增加配置管理对象ConfigManager,由它获取指定的业务服务实体类名称,并通过反射机制动态生成目标实例.1.2性能改进由于业务实体经常会对成到具存Master-Detail关系的多个表,而且有些复杂业务实体本身
8、包含1组或几组其他业务实体,出于性能考虑,为了避免IDataMapper在映射过程中频繁调用数据源逐个生成子业务实体,需要在IDataMapper与数据源之间增加1个DTO(DataTransferObject)对象IDataTran
此文档下载收益归作者所有