面向对象现状

书中作者发现了一个现象,很多j2ee设计背离了oo原则:认为持久对象不应该包含任何行为。

作者认为仅仅暴露getter和setter的对象不是真正的对象,一个对象应该包含除了属性外还应该包含这个对象的行为。

联想到学过的所有对面向对象编程的解释,发现貌似真是如此。面向对象编程:所有的分析、设计、开发都以对象为基础。而对象又是什么呢,对象是现实中存在的抽象,是具体实物的逻辑表现。如果对马做抽象,我们自然的会发现:它有四条腿,它可以跑。

但是工作这么久却发现,国内流行的mvc,流行的三层,很多都不是面向OO的。

很多遗留项目中分三层后,只是根据行为做了横向切分:模型层就是一个个持久化对象,控制层就是一个个action或controller,表现层就是html或者jsp,一个业务对应一个或者多个action,后面跟着多个biz,和多个dao。每个对象要么全是方法,要么全是引用,或者全是属性,或者更狠的混成一团。现在想来,这TMD根本不是面向对象啊。。。这是面向过程啊。。。

也许项目在设计初始是根据对象设计的,但是后期业务添加或者修改后,已经通过代码看不到马有几条退,马是怎么跑的。。。

这就是我看到的国内OO现状,没有人注意到代码是什么,大家都在看功能实现了没,但是这种偏离设计原则的代码,维护性真的值得思考。。。

你可能感兴趣的:(withoute,jb感悟)