[Architecture Design] : 资料存取层 (一)

前言 :

一般说到应用程序架构
大家最容易联想的应该就是「三层式体系结构」
但笔者所要讨论的应用程序架构
抽象逻辑上是架构在三层式体系结构的上一层
针对软件设计所规划的应用程序架构
相关数据可以参考 : 微软文件「.NET 的应用程序架构:设计应用程序和服务」
本篇将焦点放在「数据存取层」

简介 :

所有的程序都离不开数据存取。
「数据存取层」所定义的就是将数据的存取,与应用程序的逻辑分开。

动机 :

开发应用程序有时会遇到变更数据库的需求,
例如将数据库从SQL换到Oracle。

遇到这种问题
比较常碰到的解法是,把与SQL数据库沟通的程序代码跟SQL语句,改成Oracle。
甚至高深一点的会将SQL语法做成配置文件,成是执行的时候再加载。

这样的方法可以解决问题
但是如果
今天要把SQL数据库变成文本文件或是面向对象数据库呢?

观念 :

数据存取接口定义了逻辑对象B的数据存取接口。
逻辑对象A使用数据存取接口存取逻辑对象B。

将数据存取接口的实作,跟应用程序做切割。
这样的好处是将应用程序跟数据存取层做分割。
数据要往哪边存取,是由实做数据存取接口的对象来决定。

SQL数据存取对象,只需要关注如何使用SQL实作出数据存取接口。
要把SQL数据库改成面向对象数据库,也只需要实作一个面向对象数据库就可以完成。

实作 :

而「资料存取层」实作上
主要分为两个部分
1. 数据存取接口切割 : 依项目考虑来做切割。
2. 数据存取对象生成 : 参考Design Patterns的生成模式(Creational Patterns),或是微软实作的Provider Pattern。

结语 :

其实架构的东西,比较着重在观念。
观念懂了怎么实作就只是技巧噜~

原文地址:https://www.cnblogs.com/clark159/p/2205005.html