zoukankan      html  css  js  c++  java
  • [Architecture Design] : 资料存取层 (一)

    前言 :

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

    简介 :

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

    动机 :

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

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

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

    观念 :

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

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

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

    实作 :

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

    结语 :

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

  • 相关阅读:
    duilib入门简明教程 -- VS环境配置(2) Alberl
    使用libCurl实现断点下载
    通用选择器和高级选择器
    Aforge.net 一个专门为开发者和研究者基于C#框架设计
    iBatis核心框架浅析
    Parameter Binding in ASP.NET Web API(参数绑定)
    图的基本概念
    领域模型中分散的事务如何集中统一处理(C#解决方案)
    .NET 垃圾回收与内存泄漏
    三层架构之泛型抽象工厂
  • 原文地址:https://www.cnblogs.com/clark159/p/2205005.html
Copyright © 2011-2022 走看看