以前听到面向对象感觉就是抽象、封装、设计模式这些高深的概念,因为没学过 java,对这些概念至今还是云里雾里。但是学过用过 ruby 之后,感觉 ruby 的面向对象真是好用啊。一切都是对象,数据的运算处理感觉都是在操作对象,调用对象的方法转换数据什么的,非常方便。
但是看过 java 的书,感觉 ruby 的面向对象跟 java 的面向对象似乎又不一样,java 并不是一切皆对象的,一些基本的数据类型并不能像 ruby 这样当做对象来操作。
所以我感觉 ruby 的此对象非 java 的彼对象,java 的面向对象好像是业务逻辑的面向对象,ruby 的面向对象是最基本运算的面向对象,更小粒度的面向对象。然后又感觉,业务逻辑似乎不适合面向对象,在对业务逻辑没有滚瓜烂熟之前,用面向对象的思维去处理业务逻辑会让自己陷入泥沼。
我用 ror 做网站的时候,网站的总体架构业务逻辑面向过程,实现业务逻辑的时候使用面向对象的小组件完成。也就是大处面向过程,小处面向对象,好像跟 java 反了。不知道这种做法对不对。