关于面向对象的一点看法

基本所有学过计算机软件的人都知道面向对象。

面向对象的语言可以有继承、封装、多态的优势了。


可能大多数人都很了解对于继承、封装、多态的各种问题,甚至答案都背下来了。但可能一辈子也不怎么用得上,甚至连看一段写的比较标准的代码都看不懂,或者要很长时间。

当然,如果你可以轻松看懂spring、jdk的源码,就另当别论,也没有必要看我的这篇文章了,你要做的是指引一下中国软件开发的年轻人。


什么是面向对象?那得有对象。

什么是对象,简单的说就是变量和方法的集合体。当然这样说并不严密,只是举个例子。

比如人是一个对象,需要有各种属性,比如眼睛,鼻子,耳朵,手等等,各种操作,比如舞蹈,眨眼,编程序等等。这些东西放在一起就是一个对象了。


那面向对象的代码有什么特点呢,其实大多数看一眼你就可以发现,很多类方法中都有自己定义的类变量,如果你使用Eclipse,就是发现类方法中使用了很多自己类的变量,是蓝色的了。其实用上面的例子来说就是一个方法在操作你的手,操作你的鼻子。这些方法可能算是你的神经系统、运动系统了。


我不了解国外面向对象语言的具体使用情况,只想说一下国内的。

现在大多数甚至说所有使用java的公司,非研究性机构,都崇尚使用架构模式,比如表现层、业务层、物理层,当然可能名字不一样,或者多出来几个,大同小异。

这当然有优点了。这里只说缺点。


你可能看了几年甚至更久这样的代码,service下面定义了一堆service,dao下面定义了一堆dao,都简简单单的实现了一些简简单单的接口,少有或者没有继承,除非不得不用。

少有或者没有多态,这个根本可以不用。所有的类里面除了可能定义一些记录日志的工具没有什么私有变量,基本都是外面传来几个参数,里面处理完了返回几个参数。这是什么?我想说,这和面向过程或者说面向功能的语言有什么区别吗?好像没有。那java语言真的“返璞归真”。


还有很多想说了,怕写的又臭又长。

之所有写出来,是因为我来新公司写了些自己感觉很有成就的代码,被领导一顿批评,说看不懂。那您看得懂什么,abc吗。

和朋友开玩笑说,上一辈人机会多,占了工作雇佣我们,占了房子租给我们,赚了钱赚了房租之后搞我们这一代的女人。

没法评价您的人品,因为我们一代以后也会这样。循序渐进了。



你可能感兴趣的:(java基础)