面向对象
面向对象编程、面向对象设计,在我刚学的时候,感觉这就是最高境界。
以前被别人面试,以及自己面试别人,那是必问的问题。
写了这么多年小程序,写了一大堆类,也没感觉面向对象有什么好,有时还挺烦。
现在越来越不关心这个了,一个系统要开发,先要大家按功能划分模块,模块化搞清楚,模块间的主要接口搞清楚,模块内怎么适合就怎么搞。
符合清晰原则就行,能清晰表达业务逻辑。
符合简洁原则就好,复杂度能低则低。
前几天往一年前别人开发的Java代码里添加新功能,经典的MVC框架struts下,逻辑层被搞成3层,一个不大的功能模块,一堆类一堆方法互相交错,我感觉到了这个年青的同事果然功力深厚,我要加点功能很吃力了,看来我廉颇老也。
当然,很多时候不是面向对象的问题。
但是,不要会写类了,知道继承、多态等了,就以为没问题了。
一堆类下去,功能总能实现,常见的现象。
善为士者,不武。--<<道德经>>