当前位置: 网学 > 编程文档 > 其他类别 > 正文

系统架构师谈企业应用架构之数据访问层

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/12
里定义了基本的几个简单方法,当然其中并没有包括并发的处理,后面会讲到这块的处理方案的实现, 前面介绍了几种可行的实现方式。接口定义好了之后,

数据层的具体代码我这里就不一一的定义贴出来了,因为每种不同的数据库类型就要分别实现,我们这里讲解2中不同类型的实现思路吧,

498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' alt="" src="/uploadfile/201301/12/21122121155.png" />

我们这里讲解2中实现动态创建具体数据访问组件的方式,我们先来讲讲插件模式。

插件模式

插件模式:插件模式就是通过外部配置文件中读取要创建的组件的类型信息,然后调用组件服务,插件模式的关键点就是服务不会与具体实现联系起来,在我们的

分层结构中的解释就是,服务层中调用数据访问层中的组件服务,服务层不关系具体的调用方式,服务层只关心服务。而具体的数据访问组件是通过配置文件来动态的

创建,当然这就需要使用.NET中的反射的功能。我们来看个图形画的描述:

498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' alt="" src="/uploadfile/201301/12/98122121553.png" />

反射工厂通过读取配置文件中具体的数据配置项及数据访问的具

体服务组件类型,通过反射工厂来动态的创建,好了我们来看看实例代码及配置文件。

  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <Connection> 
  3. <ConnectionItem key="connectionString" 
  4. value="Data Source=.SQLEXPRESS;Initial Catalog=EasyStore;User ID=sa;Password=123456" />
  5. value="Data Source=.SQLEXPRESS;Initial Catalog=EasyStore;User ID=sa;Password=123456" /> 
  6. <DALType key="DALType" 
  7. value="DAL.SQLServer" />value="DAL.SQLServer" /> 
  8. <Assembly key="Assembly " 
  9. value="DAL.SQLServer" />value="DAL.SQLServer" /> 
  10.  </Connection> 

上面的配置文件中的ConnectionItem 节点中配置了数据库访问的链接字符串,DALType 定义了数据访问层组件的类型。我们下来看看反射工厂的示例代码实

现。

  1. public class DALHelper  
  2. {  
  3. private static IDALInterface instance;  
  4. public static IDALInterface GetDAL()  
  5. {  
  6. string assambly = XmlHelper.getVlaue("Assembly");//这里应该是自定义的读取XML节点的方式  
  7. string type = XmlHelper.getVlaue("DALType");  
  8. Assembly asm = Assembly.Load(assambly);  
  9. instance = (IDALInterface)asm.CreateInstance(type);  
  10. return instance;  
  11. }  
  12. }  

我们接下来看看如何使用这个数据访问层去实现相应的持久化操作:

  1. public class TestService  
  2. {  
  3. private IDALInterface DAL;  
  4. public TestService()  
  5. {  
  6. DAL = DALHelper.GetDAL();  
  7. }  
  8. public void Create(Test test)  
  9. {  
  10. //相应的判定操作  
  11. //创建对象  
  12.  DAL.Create(test);  
  13. }  

这样就实现了在服务层对数据访问层的调用操作,这里是通过接口调用的方式来实现。我们再来看看控制反转的实现方式吧。

控制反转

控制反转我们在设计规范与原

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号