今天继续看了yazd项目,这个jive论坛的前身,和当前流行的用spring框架写service,用持久框架写Dao的方式非常不同。最大的不同点感觉是,yazd项目的对象责任更加集中,在这里设计者可以充分发挥自己的抽象能力。
比如User对象中不只包括了属性,还包括了所有的行为,用户的权限,动作等操作。如果在spring框架中,属性和行为是相分离的,属性在entity对象中,行为在service中,这基本上可以理解为贫血的模型,但是那种形式更加有优势,还在研究中。
有一点可以确认的是yazd项目中这种方式是真正的面向对象编程,辅以设计模式的组织,虽然每次连接数据库都要自己打开connection,但是给人很天然的感觉。
如果能在yazd这种模式下,设计者应该可以很庆幸,因为面向对象思想可以派上用场,如果使用spring框架的话,和面向过程编程基本没有区别,接口只是一种摆设而已。
从现在的技术角度考虑,yazd项目确实有很多过时的东西,比如在jsp中写入java代码,还有每次打开connection连接,并不关闭,但是感觉还是有很多值得学习和思考的东西。