数据载体

目前的OP技术特别在ORM领域中最重要的两种关于数据载体方向。
一种是以微软.net技术中dataset为代表的无数据类型容器的方式,这种数据载体以其灵活的包容性和便捷的接口设计在数据一致性方面有着先天的优势。
另一种是以hibernate,cmp等为代表的完全的面向对象的技术,以标准化的对象为数据载体,这种方向以其强大和绝对标准灵活的设计支持在纯面向对象领域有着得天独厚的优势。

无数据类型的数据载体容器,
优点:
1、由于其数据的规范性,导致接口定义的便捷
2、统一的数据载体,便于统一的增加很多便捷的操作和功能
3、简化程序员需要了解的编程api,只需要记住一种而不是无限可能的数据操作api
4、标准化的输出格式一定程度保证了层次的完全内聚。

缺点:
1、规范同时也就给对象的设计带了一定的限制,牺牲了灵活性。
2、无数据类型带来了失去强类型校验的功能,增加了运行期错误。(typed dataset是种可行的方式)
3、确定的传出数据载体,从设计上来看将增加各层之间对这个数据载体的耦合,从而一个数据载体将有着多种功能,不是很符

合将对象功能粒化的分离关注思想。(这种方式可以考虑用decorator模式来解决)
4、平板式的数据载体结构设计虽然有利于上层的使用,但必然不适合于关系型以及集合对象的描述,将减弱底层的功能。
但是复杂的支持集合对象的方式又有着在数据表现上的先天的弱势。
(这种矛盾可以通过对平板式结构的扩充,也就是支持平板式结构的相互关系来达到效果,但是这样平板式结构的二义性引起的复杂关系必须得到解决。
另一条思路就是通过对集合式对象进行适配,让其表现为平板式结构的工作模式,但将引起资源的大量消耗或者操作的复杂度)


标准面向对象方式。
优点:
1、更加面向对象,适合面向对象程序员的习惯。
2、数据对象以类的方式存在,增加了可编程的接口和灵活性。
3、和已有的设计工具能够更好的融合。

缺点:
1、这种其实并不是完全的没有规范了。只是显得更加的面向对象一些,仍然有设计的约束。
2、增加需要维护的量,各种传递的对象以类的方式存在。
3、这种对象模式的结构不一定能适合表现层的需要。
4、多个类的存在,增加数据操作的api。


从我个人来说,也可能是过往经历的关系,比较倾向于第一种,也就是无数据类型容器的方式,在希望软件能够工业化的方向上

,觉得这种方式有以下几种优点。
1、避免出现过分异化的结构,统一的结构注定了程序无法使用异化的结构。
2、数据的通用性带来的良好可扩展性,许多的细节都可以统一的完成,更重要的是,这种方式给今后的图形化方向奠定了基础。
3、更为关键的是:这种关于OP的设计方式具有一定的通用性,不至于将不能进行内核反射的语言排除在外。
4、这种设计应该说不是一个良好的独立的技术设计(因为他限定了输出的数据格式,而不是任何的对象),但是确实一个局部重用和实现工业化流水作业的良好设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值