在公司里反反复写代码,突然翻到以前的书本,看着书本上的”面向对象”四个字;想起我在达内时,王克晶对这四个字的解释“以后会懂的”;
我突然间懂了面向对象,2018年9月1号,不过我得借几个例子才能讲明白;希望能让学java的同道中人少走些弯路;
1)第一个例子:关于面向对象与面向过程的差别-更轻视逻辑
我提过我一直在做的大数据可视化图表工作:就是一些柱状图一类的模型;
但刚开始探索期我遇到一个问题,我做的大数据图表讲的东西别人都看不明白,看的很困难;这问题就很大了,因为图形讲故事是天然要比汉字讲故事直观的;
反思:我反思的过程不说了,直接说原因;
- 库里有一大批有价值的数据,分为原因数据和结果数据,这两大类数据之间是有因果关系的;
- 我分析时,要经过复杂的排除与总结才能得出简短的结论,我做图表时就把每一步的分析原因、排除原因、类比原因都给做图表上了;
观众看到图表时只想知道结果就足够了,你的结果越直接,越容易看懂;
我给观众把原因做成了图表,他们不想思考,找不到答案所以看不懂;
总结:
- 面向原因(对创作者友好)与面向结果(对使用者友好),最大差别就在于谁更友好;
- 同理,面向过程(面向原因)与面向对象(面向结果)的差别也在这里,面向对象比面向过程对人更友好,
- 所以编程每一个细节,无论是代码、注释、甚至命名时,都要与结果有关;尽量少用逻辑,直达结果
2)第二个例子:管中窥java语言:学java重点学哪个?
我把学到的java分为两块:java=main方法+实体类
学习时: java我就从main方法开始学起的;最感兴趣的也是main方法里的复杂、刁钻的逻辑方法,像是For循环和递归,感觉逻辑就是java的全部;
工作后: java我时刻考虑的反而是实体类(像DTO和VO); Spring里有main方法吗?再没见过main方法了;天天用java语言就写个些实体类,也就给Spring写个service类用来调一下实体类的get,set方法(逻辑也不过是先get还是先set,方法外加个非空),百度上增删改查泛滥了;
结论: 所以java的难点就在于实体而不是逻辑;java作用主要也就是个管道(java代码的作用就是个给页面输出实体类的接口);沟通数据库和页面;管道中间双向流动的就是实体类;
3)第三个例子,侧面证实实体类与逻辑的比重: 百度一下,面向对象定义的3大特性:封装、继承、多态,全是讲实体类的,java称做面向对象语言,也是因为它的实体类对应社会上的实体;所以别被main方法所误导;
结论:学好面向对象抓住一点:友好的实体类
如下:将类结果值-次数单独做个变量,类才友好;

本文通过大数据可视化图表的工作经历,对比面向过程与面向对象的不同之处,并指出在Java编程中,实体类的重要性远超逻辑处理。同时,文章还强调了面向对象编程中实体友好的概念。
2261

被折叠的 条评论
为什么被折叠?



