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。

    结语 :

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

  • 相关阅读:
    D. Renting Bikes 二分
    Maximum Absurdity DP + 数学
    模拟 H
    Secrets 数论
    A. Knight Tournament SET的应用
    B. Xenia and Hamming Codeforces 256B GCD,LCM处理字符串
    Alternate Task UVA11728 暴力枚举
    GCD Extreme (II) 欧拉函数的应用
    Bit Magic HDU 4421 2-Sat
    Encoding http://acm.hdu.edu.cn/showproblem.php?pid=1020
  • 原文地址:https://www.cnblogs.com/clark159/p/2205005.html
Copyright © 2011-2022 走看看