当前位置:  开发笔记 > 编程语言 > 正文

你应该在课堂上使用访问者属性,还是只从课堂外使用?

如何解决《你应该在课堂上使用访问者属性,还是只从课堂外使用?》经验,为你挑选了2个好方法。

我有一个类'数据',它使用getter访问某些数组.如果数组为null,那么我希望Data访问该文件,填充数组,然后返回特定值.

现在这是我的问题:

在创建getter和setter时,您是否也应该使用相同的访问器属性作为访问该阵列的方式(在本例中)?或者你应该直接访问数组?

我在类中使用访问器的问题是,当调用类在Data.array中查找某些信息时,我得到无限循环,getter发现数组为null,所以从文件中获取它,并且该函数结束再次从Data中调用getter,数组再次为null,我们陷入无限循环.

编辑:

那么对此没有官方立场吗?我看到不使用具有文件访问权限的Accessors的智慧,但是你们中的一些人说要始终在类中使用访问器,而其他人则说从不使用类中的访问器......... ...................................



1> oefe..:

我同意krosenvold,并想稍微概括一下他的建议:

不要将Property getters和setter用于昂贵的操作,例如读取文件或访问网络.对显示昂贵的操作使用显式函数调用.

通常,类的用户不会期望简单的属性检索或赋值可能花费很多时间.

这也是Microsoft的框架设计指南中的建议.;

在以下情况下,请使用方法而不是属性.

该操作比字段集慢几个数量级.如果您甚至考虑提供异步版本的操作以避免阻塞线程,则很可能该操作太昂贵而无法成为属性.特别是,访问网络或文件系统的操作(初始化除了一次)应该最有可能是方法,而不是属性.



2> Jason Punyon..:

我认为总是使用访问器是一个好主意.然后,如果在获取或设置属性时需要任何特殊逻辑,则您知道所有内容都在执行该逻辑.

你可以为其中一个属性发布getter和setter吗?也许我们可以帮助调试它.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有