美文网首页
把你封装起来

把你封装起来

作者: 我是刘良 | 来源:发表于2017-03-27 22:21 被阅读9次

最近在学习JAVA编程,基础课程还算简单,一点一点地学完了。这里面有一些很重要的概念,比如“封装”这个概念。

这个概念在JAVA里面表示“把数据和数据的操作放在一起就叫做封装”。换个说法讲,我们说“一个鸡蛋”,就是说鸡蛋这个整体。我们不用管鸡蛋内部是如何的,但是我们知道鸡蛋可以孵小鸡、可以煎、可以炒、可以煮、甚至可以按摩。

这个概念的原理是什么?

封装这个概念我们是经常用而不自知,比如你会开车。对于车这个工具是把车的种种零件封装在一起就成了车,你不用管这个车是通过什么驱动的,是如何产生动力的,是如何有如此大的马力的,你也不用管这个车是如何通过方向盘实现转弯的,等等这些细节。你只需要知道怎么开这个车就可以了。

你不用管电脑内部是如何运行的,你只需要知道如何用电脑就可以了。

总结封装原理:你只需要知道这个被封装的东西是如何用的就好,不需要管内部是如何构造、运行的。

这个概念为什么重要?

这个概念有助于我们理解这个复杂的世界。你可以想象一下,每个人都是一个独立的系统。每个独立系统内部如何工作我们不用管,我们只需要知道这个系统的属性和这个系统能做些什么。

如果你想开一个公司,你只需要找到你所需要的那些人(系统),然后“封装”起来成为一个公司。每个公司也是一个独立的系统,公司与公司封装起来成为集团。

个人,家庭,社会,国家,都是不同程度的封装。

原子,分子,细胞,器官,身体也是不同程度的封装。

世界就是这样由简单逐渐构造成复杂的,还是古人说的那句话深刻:道生一,一生二,二生三,三生万物。

复杂的程序都是由简单的程序封装而来,所以封装这个概念就显得如此重要,因为我们无时无刻都在用这个概念,甚至我们说的话就是这样封装的:字、词、句、段、篇。

这个概念普遍被如何误解?

你现在很口渴,你只需要告诉大脑,你口渴了,然后你就去喝水了。你并不需要告诉大脑具体的步骤:向前迈5步,用手拿起那个水杯,将手移到饮水机处接水,然后将水杯移动到嘴唇边上,倾斜45度角,张开嘴喝水。

上面这个例子,你肯定不会选择第二种方式下达命令。但是,生活就是如此有意思。很多看起来简单的概念往往就是容易弄错。

两个例子

小王叫小明去买包子,小明买回来包子后,小王抱怨说:这包子这么烫,怎么吃呀,我还要赶着去总部参加会议呢。小明十分懊恼:不是你叫我买的包子吗?你又没有告诉我要买不烫的包子。再说了,你要去赶着参加会议,你应该告诉我:给我买方便在路上吃东西啊。

这个例子,你发现问题了吗?小王没有说自己的目的(方便在路上吃的东西),而是下达的是具体指令(买包子),导致小明买回来后并不符合小王的需求。

小王如果明确说出了自己的目的后,小明会根据小王的目的来做出具体的行动。小王如果把小明当成和自己一样的被封装起来的独立的系统。然后就知道要传递的信息并不是具体如何做,而是传递目的。

我妈经常下达具体的指令:给我把厨房抹干净。然后我去把厨房抹干净了。我妈看到后非常不满意,厨房里面的东西怎么还是这么乱?我回答说:不是你叫我抹干净厨房吗?没叫我整理东西呀!

我妈应该告诉我的是:我想让厨房变得更整洁。这才是她的真正目的。而我就会根据我的系统进行思考具体步骤。

一个团队中,队长与队员之间最容易出现误用这个概念。队长如果每件事都想得事无巨细,那么队员的大脑就没用了,队员只能执行简单的命令,无需任何思考。可事实上队长永远无法想完整一件事,只需要告知队员需要实现什么目的就可以了。

如何正确使用这个概念?

把别人当作你的另一半大脑,而不是让别人成为你的另一半手脚。你只需要想清楚自己需要别人做什么,然后清楚地表达给正确的对象,而不是告诉别人具体如何做。

错误使用这个概念有什么可怕之处?

弄错了对象,就是让马去犁田,让车去渡河。发送错误的信息就会导致马也忘记了如何走路。

拿上面团队的例子说,如果队长不去想要告知的目的是什么,而是告诉别人如何做,那么队长只能永远手忙脚乱,队员永远都在请示下一步动作。

相关文章

  • 把你封装起来

    最近在学习JAVA编程,基础课程还算简单,一点一点地学完了。这里面有一些很重要的概念,比如“封装”这个概念。 这个...

  • 面向对象的三大特性

    封装 继承 多态 for example: 封装:有一个学生,把学生封装起来class Student{Strin...

  • 封装、重载、构造方法

    ####封装(Encapsulation) *封装就是把不想或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开(...

  • 总结

    面向对象 封装 把数据封装起来,不然外部随便访问;把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的...

  • 命令模式

    命令模式把封装带到一个全新的境界:把方法调用封装起来。通过封装方法调用,我们可以把运算块包装成形。所以调用此算法的...

  • behavior:命令模式 (Command Pattern)

    把方法调用(method invocation)封装起来。通过封装方法调用,可以用来记录日志、或者重复使用这些封装...

  • c++一些面试题

    c++三大特性封装封装可以隐藏实现细节,使得代码模块化;封装是把成员变量和成员函数封装起来,对成员变量的访问只能通...

  • Java-0008-封装、继承、多态和修饰符

    2016.7.17 封装、继承、多态 面向对象的3种特性 封装 顾名思义就是把数据封装起来,只提供一些被允许的属性...

  • 01-java的基础入门

    java是面向对象编程 1.封装、继承、多态 1.封装: 封装是把数据和操作数据的方法绑定起来,对数据的访问只能通...

  • iOS多线程-NSOperation

    NSOperation其实就是苹果对GCD的封装,把GCD封装成面向对象的编程,让开发者使用起来更加方便,简洁。 ...

网友评论

      本文标题:把你封装起来

      本文链接:https://www.haomeiwen.com/subject/zfddottx.html