ActiveRecord Is Even Worse Than ORM - DZone Java一文的观点。作者曾经在2014年提出ORM是反模式的观点,ORM作为一个非常流行的设计模式,是在一个螺丝壳中,把真正对象变成了DTO(数据传输对象),DTO是一种贫血失血的、被动的、非真正的对象(其实是一种数据结构),结果通常是戏剧的,ORM的使用导致整个编程范式从面向对象悄悄偷换回了原来的面向过程编程。在今年的JPoint和JEEConf大会上,作者会继续谈这个问题。有的人认为ActiveRecord能够解决这个问题,而作者认为只有Repository模式才能解决这个问题。作者认为ActiveRecord比ORM更坏,ORM是由两个部分组成:session会话和DTO,后者就是所谓的实体,这个实体是没有功能方法的,它们只有从一个session传输到另外一个session的数据,问题是:对象不是数据结构,对象不是数据,对象不只是封装而且会暴露数据,作者连写了五篇文章阐述错误原因。ActiveRecord没有解决问题,它只是将工程迁移到父对象,所有实体都必须继承它,下面是保存我们的实体到数据库的ORM方式,伪代码:
book.setTitle("Java in a Nutshell"); session.update(book); <p class="indent">
book.setTitle("Java in a Nutshell"); book.update(); <p class="indent">
[该贴被clonalman于2016-08-05 15:22修改过]
猜你喜欢
本站原创《复杂软件设计之道:领域驱动设计全面解析与实战》
其他人在看