五、 应用表格数据网关模式
在复杂的系统中,你常常是把TDG模式与DM以及Factory相结合以便创建一种极其灵活的而可扩展的方案。在此,我必须对两个结构化方面加以解释。首先,你可以直接在管理器类的方法中编写ADO.NET代码,舍弃工厂,从而获得一种纯DM方案。同样,你可以编写一个纯TDG方案(稍后讨论)并且获得一个类似Visual Studio 2005的方案。
用TDG术语描述,网关是一个包装了对一个数据库表格存取的对象,而你只需要使用一个处理所有表格行的对象即可。典型地,该网关类中的方法将返回ADO.NET对象。下面是一个例子:
Public Class EmployeeGateway Public Function Find(ByVal id As Integer) As IDataReader //…… End Function Public Function FindAll() As DataTable //…… End Function Public Sub Save(ByVal id As Integer, ...) //…… End Sub Public Sub Insert(...) //…… End Sub Public Sub Delete(ByVal id As Integer) //…… End Sub : End Class |
在此,你添加越多的方法,该TDG模型越发进一步发展成为一个DM模型。如果你把这个网关的抽象定义与前面讨论的表格适配器类作一下比较,那么,你会发现在这两者之间存在一种明显的匹配。
六、 总结 在基于模式进行设计时,首先给人的感觉往往是有点过于抽象,因为你,作为一名开发人员,的最终目的是要编写出能够实际工作的具体代码。因此,模式应该成为你开发的指南,而你未必在一切开发中都基于模式进行编程。
根本上说,应该基于你的爱好和对于一种既定方法的习惯程度来作出决定。然而同时,不要惧怕在复杂的问题上尝试一种新的方式和更结构化的方法。你可能很快发现你已经喜欢上它了。
Visual Studio 2005提供的数据设计器向导生成的代码基于经典的TDG方法进行工作。其实,并没有什么糟糕的内容,当然也没有新的或秘密的东西。使用向导的关键在于真正了解它相对你的需要实现了什么。因此,为了全面地理解Visual Studio 2005数据设计器的功能,全面地归纳一下企业数据存取设计模式是非常必要的。
本文首先解释了Visual Studio 2005代码的内在机制,然后,从一种模式设计的角度来分析你完全有希望对这些代码作进一步的改进。Visual Studio 2005数据设计器的确创建了一种结构化的有效的DAL,但是你必须理解它的代码并且着手编辑它才行—不过,这种模式未必适合于复杂的应用程序开发中。现在,既然你已经对它有了全面的理解;那么,接下来你就应该开心地试用Visual Studio 2005了!
查看本文来源