数据层新思路,写数据库无关的数据层 ORM在数据库内做更为轻便.
(2011-07-19 02:16:07)
标签:
杂谈
一个类对应数据库中的一个或多个表
永远不在利用过程中利用SQL语句
从数据库出来的即便实体消息
ORM在数据库内做更为轻便
凡是做软件设计的,都懂得我们寻求的目标是松耦合的.
即便说,良好是每个层互相之间的关系减退到起码界限.
以下是个人的一些经验,软件设计我们能够这么做
1"获得用户需求
2"界面设计
3"业务实体类设计
4"数据库设计
5"编码
1"获得需求没什么说的
2"界面设计,也没多说的。不过可能这个地方是改变最多、最难的局部。
3"业务实体类设计
这里即便经典的面向对象的分析施展能力的时候
不琢磨任何编码告终,仅从业求切实动身对商业逻辑建模
这个环节对后期编码的最直接的收获是一堆类图
4"数据库设计
这里是我最想说的局部
凭什么一个类用一张表来照射?
类是我们面向对象分析出来的收获,因而在许多人的实践里曾经富余验证类和表不是一对一的联系
并且,万一从大型项目角度动身,从数据库改变角度动身.表构造的改变是迟早的事情.
万一类和表是单一对应的.那么在数据库表和业务类之间就构成了一种强耦合的收获
即便你用再好的ORM都不能处理这个问题的(难道数据表构造改变后重新照射?当心,即便类分析收获不变,数据库的设计也是很可能会改变的).
ORM的精华估计不在于容易的将一个表影射成一个类
可能将一个类到数据库里积极生成一个表
评比的做法是,依据类的切实数据情形,设计数据库的各种表构造
然后.利用数据库的视图以及存储过程等各种数据库工具,供给一个能够被任何软件调用的数据拜会接口,这些接口是直接对应面向对象分析后的类图的。
这些接口大约能对应所谓数据永远化的必需.
上面是我第二个尤其必需指出的地方,数据库存储过程的利用决策依据.(过几天再翔实写)
这个时候,我们曾经有了数据库,一个极其好的联系性数据库,并且数据库对外盛开了一系列的存储过程及视图,这些东西对外都是按照类分析的收获做的。因而能够极其好的告终对象的消息在数据库内永远化。
尔后凡是业务对象不发生焕然一新的改变,那么数据库内的所有一切改变对利用过程来说即便透明的
而这里即便第三个重要猜想,ORM更轻便在数据库内告终
数据库内的表从存储过程厉行后,从数据库出来的时候,就曾经成为基础对象了。
到了这一步,那么在利用过程内就真的告终了全面彻底解脱数据库的非面向对象的打扰。
凡是容易的举行数据层对象和存储过程的关系就能告终数据库无关。
因为对利用过程来说,和数据库单一的联系即便存储过程和视图。
除非你要把项目移植到一个不扶持这些功能的数据库上。
即便那样,也只必需额外增加一个过滤得层次就足够了
除非要举行连接字符串的搭配
利用过程的数据层代码大约是无需修正了这么一来,新闻的见解性越来越强:有些守旧派美国人坚持感受奥巴马诞生在美国之外,
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。