我觉得java虽然表面上是完全遵循OO的,但为了折中,也提供了一些非OO的手段方便编程。

例如:静态方法就破坏了纯OO的思想,再如上面说的setOrg还是setOrgId的问题。

个人拙见。

> 100%的面向对象?
>
> primitive type,static...

99%行不行?

java本身也不是纯面向对象的

纯面向对象的语言里面,什么都是对象,而JAVA里还有诸如int/double这样的基本类型存在,还有诸如上面各位所提到的关键字,都不是纯面向对象的语言所允许的

客户端并不一定是WEB,当然即使是WEB,也有其纯面向对象的实现方法,可以参看一下Python,你把它和JSP比较一下,就会了解差异了

object model driven的方法是从上而下, 这种方法看起来很美. 但实际项目中有几人能做到. 类和对象设计和表设计的侧重点不同. 另外在项目协调中. 类和对象设计变动大,表设计变动小, 先确定变动小的部分, 易于管理.

hibernate的作者提出4种方法, 从上而下, 从下而上, 中间到两边, 两边映射. 在项目设计时, 应该综合使用. 不好只用一种.

> object model driven的方法是从上而下,
> 这种方法看起来很美. 但实际项目中有几人能做到.
> 类和对象设计和表设计的侧重点不同. 另外在项目协调中.
> 类和对象设计变动大,表设计变动小, 先确定变动小的部分,
> 易于管理.
真正做对象设计的人少是因为多数开发者满足于传统的以数据库为中心的设计,没有认识到对象设计带来的好处。对象设计不可能是终极的设计方法,相信今后一定会有更好的方法替代它,但现在看来,它比过程式的设计更先进是勿庸置疑的。

> hibernate的作者提出4种方法, 从上而下, 从下而上,
> 中间到两边, 两边映射. 在项目设计时, 应该综合使用.
> 不好只用一种.
没错,但他的目的一定不是为了鼓励你使用各种方法进行设计,这样提完全是为了说明Hibernate的适用面比较广。对于某些特定的情况,比如数据库是老系统遗留下来的,出于某些原因数据库结构一点也不能动,没办法,就只好自下向上了。而且,从中间到两边,是指先写hbm.xml,再生成两边的文件,这只是Coding的方法问题,并不代表任何设计思想。