除了数据库本身外,这种结构包括三层(见图1)。在外侧,是你存取数据的用户界面或设计层。你可以在Windows Forms、Web Forms或Web services中构建这一层。该层同一个data reader、data set或我称为ESTD (延伸的或派生的强类型数据集) 类的一个实例交互。然后这些类同一个数据访问层交互——数据访问层是唯一的一个包含数据库隐密信息的层次。
我将讲述如何从一个强类型的数据集里派生从而创建一个ESTD。ESTD可以保存数据规则,如用于一个单一字段的范围规则,以及更复杂的商业规则。如果你的商业规则很广泛,或者另一个ESTD或一个封装的data reader要用到这些商业规则,你可以将它们封装到该层的一个单独的类里。对于运用该ESTD 的程序员来说,这个附加的类有很高的透明度。
让我们想象一下,由于每一圈、或每一层是独立地运转的,你就可以通过任意组合我所讲述的功能来调整程序。当你增强每一层的功能时,你的程序也就平稳地取得了进展。
通常,UI决定你对数据存储的选择,但是根据整体的结构,插入层可以决定提供哪种类型的存储。当你研究我在这里讲述的数据绑定Windows Forms的控件到ESTD这种存取方法时, 请记住这种灵活性。
隐藏数据存取
为了阐明该结构,我准备了一个简化了的DataAccessor类,它封装了数据层(见列表 1)。所附程序包含一个带有更新的更完整的类。通过实现一个定义的接口,如IDataAccessor,你可以识别类似的对象并知道会有什么行为。只有你定制的DataAccessor类有特殊的数据库详细资料