譬如对于一个产品展示网站(不涉及购物流程),按照目前流行的分层结构,可能首先有一个 Model,然后是 Dal,,如果不是很变态的人,大概不会有 Bll,最后是 UI。OK,就以此为例。对于这一类型的网站,客户最常变更的是什么呢?恐怕是数据库表结构吧,因为客户今天会要求加一个产品颜色,后天又要求加一个分类,大后天再加一个保质期,你在做之前,能准确的预测到这些具体的需求变化吗?如果能,那你改行算命好了,一定财源滚滚,何必做程序员这份又辛苦又没前途的职业呢。
既然算命的路走不通,那还是来改数据库表结构吧.表结构变了,那还得改 Model,然后是 Dal,最后是 UI,恭喜您,这么小的一个变化,竟然可以熟悉经典的三层结构,Very Cool!
可是很痛苦,如果你认为这样也能痛并快乐着,那你是 90 后,当我没说。其实,这种类型的变化,如果不是初入行的,大约都能猜到,既然能够猜到,我们为什么还要做出这么痛苦的选择呢?针对变化进行封装,这是一个很重要的原则。既然 Model 这一层经常变动,那就从这里着手,很简单,抛弃一个表对应一个对象的做法,何必背负那么沉重的包袱?用一个 Hash 来封装你所谓的实体类,根据表结构动态生成名值对,然后填充页面,是不是简单很多?并且在表结构修改后,你的代码只需很小的改动,甚至都不用改,直接在页面上添加与表字段相对应的控件就可以了。这样,只要一个通用的数据库访问的层,其它所有的代码,直接在 UI 里写好了。
最近公司接的小项目上也确实有这种情况,就是多次更改数据库结构,我也确实是按照它上面的做的,改了MODEL改DAL,然后改BLL。
看到说可以用Hash封装,但是百度了很多也没有找到一个标准的用法。
是不是可以理解成,可以根据SQL或者ACCESS的表结构动态生成model类?但是具体怎么用呢
既然算命的路走不通,那还是来改数据库表结构吧.表结构变了,那还得改 Model,然后是 Dal,最后是 UI,恭喜您,这么小的一个变化,竟然可以熟悉经典的三层结构,Very Cool!
可是很痛苦,如果你认为这样也能痛并快乐着,那你是 90 后,当我没说。其实,这种类型的变化,如果不是初入行的,大约都能猜到,既然能够猜到,我们为什么还要做出这么痛苦的选择呢?针对变化进行封装,这是一个很重要的原则。既然 Model 这一层经常变动,那就从这里着手,很简单,抛弃一个表对应一个对象的做法,何必背负那么沉重的包袱?用一个 Hash 来封装你所谓的实体类,根据表结构动态生成名值对,然后填充页面,是不是简单很多?并且在表结构修改后,你的代码只需很小的改动,甚至都不用改,直接在页面上添加与表字段相对应的控件就可以了。这样,只要一个通用的数据库访问的层,其它所有的代码,直接在 UI 里写好了。
最近公司接的小项目上也确实有这种情况,就是多次更改数据库结构,我也确实是按照它上面的做的,改了MODEL改DAL,然后改BLL。
看到说可以用Hash封装,但是百度了很多也没有找到一个标准的用法。
是不是可以理解成,可以根据SQL或者ACCESS的表结构动态生成model类?但是具体怎么用呢
然后再学学CodeSmith