栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

私人关键字的使用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

私人关键字的使用

首先不仅仅将变量设为公共的主要原因是,如果您确实将其设为公共,那么以后您会更加头疼。

例如,一个程序员围绕私有成员变量编写公共获取器和设置器。三个月后,他需要验证该变量永远不会“设置”为空。他在“
setFoo(…)”方法中添加了一个检查,然后将检查所有尝试设置变量的“将其设置为null”。案件结案,并毫不费力。

另一位程序员意识到,将公共获取器和设置器放在私有成员变量周围违反了封装的精神,他看到了这些方法的徒劳性,并决定将成员变量公开。也许这可以提高性能,或者程序员只想“在使用时编写它”。三个月后,他需要验证该变量永远不会“设置”为空。他扫描对变量的每次访问,有效地搜索整个代码库,包括可能通过反射访问变量的所有代码。这包括所有扩展了他的代码的第三方库,以及所有新的在编写代码后使用他的代码的模块。然后,他要么修改所有调用,以确保变量永远不会设置为null。案件永远不会结案,因为他无法有效地找到对暴露成员的所有访问权限,也无法访问所有第三方的源代码。由于对新编写的模块的知识不完善,因此可以保证调查不完整。最后,他无法控制将来可能访问公共成员的代码,并且该代码可能包含将member变量设置为null的行。

当然,第二个程序员然后可以通过在变量周围放置“ get”和“
set”方法并将其设置为私有来破坏所有现有代码,但是,嘿,他可以在三个月前完成该工作,并省去了为什么需要这样做的解释。破坏其他人的代码。

随便怎么说,但是将公共“获取”和“设置”方法放在私有成员变量周围是防御性编程,它是由多年(即数十年)的经验带来的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609998.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号