刚开始学编程那会儿,我跟大多数小白一样,觉得能把代码敲出来,让它跑起来,就算是了不起了。那时候,啥面向对象,啥封装继承多态,我是一头雾水,听老师讲课就跟听天书似的,左耳朵进右耳朵出。觉得那些都是大厂才用的高级玩意儿,我这种菜鸟,能写个循环、判断就烧高香了。

可是,坑总是要自己踩了才知道疼。我那时候信心满满地接了一个小活儿,就是给一个朋友写个小小的库存管理系统。功能很简单,录入商品,查看库存,出库入库啥的。我琢磨着,这不就是几个变量加减乘除的事儿嘛小意思。

我就开始吭哧吭哧地写。写了一个goods_name,一个goods_price,一个goods_stock,所有这些变量都大大方方地摆在外面,谁都能访问,谁都能改。入库的时候,直接goods_stock += quantity;出库的时候,直接goods_stock -= quantity。看起来没毛病,对?

系统跑起来,一开始挺顺的。结果没过几天,朋友打电话过来,急吼吼地说库存不对劲,有一次操作,居然把库存改成负数了,而且价格也莫名其妙地变了。我一听,头都大了,赶紧去查代码。查了半天,才发现问题出在哪。

原来,我在一个地方,可能是不小心,也可能是脑子短路了,直接把goods_stock这个变量赋值成了-5。因为它是公开的,我可以直接这么干,代码编译也不报错。还有,价格那里,因为也是公开的,我在计算总价的时候,不小心把goods_price给改了,结果后面的所有商品价格都跟着乱了。

那真是改这个坏那个,改了半天也没个头绪。我当时就琢磨,不行,这样下去迟早得把自己绕进去。我得想个办法,把这些关键的数据给我“藏”起来,不让别人(更多的时候是未来的我自己)随便乱动。就像我把家里钱放保险柜里,不是谁想拿就能拿的,得有钥匙,得按我说的规则来取钱。

于是我开始瞎琢磨。我把那些变量,比如goods_stock,我不再让它直接暴露在外面了。我给它包了一层壳子。我想,要改变库存,你不能直接改数字,你得通过我提供的“入口”来操作。比如说,我建了两个函数:一个叫add_stock(quantity),一个叫reduce_stock(quantity)。这两个函数里面我会做判断,比如reduce_stock的时候,我会先检查quantity是不是大于当前库存,如果大于,就直接报错,不让你把库存变成负数。

小编温馨提醒:本站只提供游戏介绍,下载游戏请前往89游戏主站,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区

当时这么一改,奇了怪了,代码一下就清晰多了。那些关键数据,像goods_stock,再也不能随随便便地被赋值成负数了。你要想改它,就得老老实实走我设定的流程。这样一来,之前那种莫名其妙的bug就少了一大半。我觉得,我这套“把数据藏起来,通过特定的门路才能操作”的思路,简直是天才。

后来跟一个老程序员聊天,我把我的这个“天才想法”嘚瑟了一下。他听完就笑了,拍了拍我的肩膀说:“小伙子,你这不就是把‘封装’给搞明白了吗?”我当时一愣,原来我费老大劲琢磨出来的这个东西,人家早就给起名叫“封装”了。那一刻,我真有一种拨开云雾见月明的感觉。原来那些理论书上说的专业词汇,根本不是什么玄乎东西,就是解决咱们编程过程中遇到实际问题的一个好办法。

从那以后,我在写代码的时候,就下意识地会去思考,哪些数据是核心的,需要保护起来,不能让人随便篡改的。我就会把它们“封装”在对象里面,只留下几个“出口”,也就是方法,让外面的人通过这些方法来跟我的数据打交道。这样我的代码就变得越来越健壮,也越来越好维护了。

封装这玩意儿,真不是啥高大上的理论。说白了,就是咱们程序员自己遇到的一个问题,然后想了个办法,把数据和操作数据的方法“打包”在一起,再把数据藏起来,对外只提供约定好的接口,这样就能避免很多不必要的麻烦。就像我们用手机,你不需要知道手机里面电路板怎么跑的,你只需要按按钮打电话发短信就行,内部的复杂性都被“封装”起来了。你只要会用,别瞎搞就行了

免责声明:喜欢请购买正版授权并合法使用,此软件只适用于测试试用版本。来源于转载自各大媒体和网络。 此仅供爱好者测试及研究之用,版权归发行公司所有。任何组织或个人不得传播或用于任何商业用途,否则一切后果由该组织及个人承担!我方将不承担任何法律及连带责任。 对使用本测试版本后产生的任何不良影响,我方不承担任何法律及连带责任。 请自觉于下载后24小时内删除。如果喜欢本游戏,请购买正版授权并合法使用。 本站内容侵犯了原著者的合法权益,可联系我们进行处理。