封装本质

6 篇文章 0 订阅
6 篇文章 0 订阅

看了很多人写的关于语言封装的大论。从其表述看,大多是对类这个语言现象的客观描述,比如成员归入类中,隐藏属性,公开接口。

个人认为换一个角度看,试图揭示其本质,是一件能反过来认识真理的思想旅程。

这个角度实际是要先把视线拉回到这两个点上:一是信息,二是责任。你能拉得回来吗?如果拉回来,我们就开始了。

信息如果被看成一件新商品,它将经过很多地点,并经过很多加工后形成。从用户请求它,到返回的期待的结果,它就经过了一个闭环的流程。我们在测试程序的无数个过程中是不是总在急切盼望那个合格信息呈现在眼前呢?当客户的期待也能如愿实现时,客户将得到一份商品级的服务。

一个请求想安全的回来,其经过的代码丛林是多种多样的。在原始状态下,如同过了一个个没有法制的地区,它将时时面临危险。这是多么可怕的局面呀。

还好,人类的智慧并没有让这种代码丛林的状态持续下去,人类在代码中建立了法制。还记得你上面拉回到的第二个责任视角吗?那就是通过强制行为,让凡是处理特定信息内容的相关部分组成一个个责任单位,由它们负起相当的责任来。这就像将满街的乱哄哄的商贩们(代码语句)清街入室,登记成立有限责任公司。信息经过的地方叫作公司了,公司的经营范围明确,分工明确,相关方来联系工作可以找不同的分工部门。而类(原料库——属性和处理过程)和方法(公司内部专业分工)呢,它们将处理过程包装在内部,接收什么信息,返回什么信息有了明确的规定。现在,处理的信息出了问题拿类直接问责。接口是不是有点像法律呢?

至于基本类型没有功能责任,其原因是它们如同一种标识,如同金、木、水、火、土对世间诸物属性的标识定性,基本数据类型对基本信息属性进行了标识,类型不对就如同水火不容,立即报错。

理解了责任,在重构,语言发展上,越能清晰明确责任,越能将代码优化得好。个人认为方兴未艾的新语言正是在细粒度上进一步划分责任。责任的完全细化将在组合时有最大的自由度。当然,细必多,对其管理又是一项工作。

高度分工的专业化才有高度协作的社会化,二者相辅相承。但前者更为因。信息处理系统的发展也必然走着这条康庄大道。专业化,即封装?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值