OO在软件开发进化史上大概相当于无脊椎动物向有脊椎动物的进化。
有了犀利的脊椎,OO在各个战场上窜下跳,进趋如意,以至于近 日奠定编程王者思维的桂冠。
但是进化是残酷的。
人类在最近几百年,几十年之迅速变化,令软件需求也与时俱 进,千变万化,朝令夕改时有发生。
有脊椎动物的脊椎被折磨得死去活来。
----------------------------------传说中的废话间隔线 ----------------------------------
Hibernate作为持久层OO的集大成者,无疑将 这个OO的刚性推进了一步。
但是如果数据库发生了变更,如果是轻微的变更,HIBERNATE尚可扭一下腰就解决了,
如果是大的变更,HIBERNATE就要扭断了腰了。
有人说了,需求不清楚,或设计者不够厉害,我认为,这固然是原因的一个方面,但 是另一方面
厉害的设计者应该也是吃了不少苦,也是从菜鸟进化来的吧。
所以刚性的OO也有两面性。
所以我们提倡面向元数据编程,但是纯粹的元数据编程也是不可取的,我们的目的是在元数据和OO的刚性之间
能够“骑墙”,进可 攻,退可守。
总而言之,我们通过元数据编程在有脊椎和无脊椎之间的选择之间设计了一套DNA,使之快速进化,或快速重新进化。
如同每个常规的人是在妈妈的肚子里面经历十个月从无脊椎进化到有脊椎一样,DNA是不可或缺的路线纲领。
后面将谈一下实现柔性持久层OO的思路...