知识卡片
有效封装与低效封装的区别
内容
封装不是有没有的二元判断,而是有效还是低效的程度问题。公司把填工时表改成要求员工按会计科目自己拆分小时数,还得专门培训才会用——这系统技术上”封装”了会计逻辑,但接口把本该由会计师处理的抽象(借贷科目)泄漏给了普通员工,会计的工作简单了,代价转嫁给了所有使用者。判断封装是否有效要问两点:隐藏的细节是不是用户真不需要知道的?接口本身是否足够小?只满足”技术上封装了”不够。
参考来源
- 位置:《恰如其分的软件架构》第11章《封装和分割》11.4节《有效封装》(源文件:_epub-src/OEBPS/text00109.html)
- 结论依据:原文用工时表改用会计科目拆分的真实故事,说明这种封装把会计师使用的抽象泄漏给了普通用户,导致低效封装,并提出判断有效封装需要同时确认隐藏的细节是否必要、接口是否足够小。
- 原始内容:这个封装之所以低效,是因为接口泄漏了抽象,暴露了会计师使用的抽象(即科目借贷),这样做使会计师的工作变得简单,但却建立在其他人的痛苦之上……你必须区分有效封装(effective encapsulation)和低效封装。