1
17
如果参数是类的“state”的一部分,则使用私有成员。另一方面,如果参数只是一个临时对象,只需将其作为参数传递。 |
2
4
我同意“如果一个参数是类的‘状态’的一部分,那么使用一个私有成员”,但这立刻带来了一个新问题: 当参数被认为是类状态的一部分时? 为了赞美所说的话,我想补充一句: 如果在调用方法后需要保留该值,则参数是类状态的一部分。 示例1参数不是类状态的一部分。 这辆普通车没有任何理由去记住是用什么钥匙发动的。
示例2:参数是类状态的一部分。 这辆普通车需要知道它有多少油。
|
3
1
类应该是自包含的、自维持的对象。如果正在使用的数据是类状态的一部分,则应使用内部变量。如果数据只是暂时用于计算或其他用途,请将其作为参数传入。 另外,您应该使用 私人班级成员 ,使用访问器和转换器访问和修改它们。不要让外部代码接触到类的内部。 |
4
1
创建私有数据只是为了避免传递圆形数据,因为函数参数对我来说就像是伪装的全局数据。只有当数据是类的“状态”的一部分时,它才应该是类的一部分(即,它需要在类的“成员函数”调用之间保持)。 |
5
0
此实体是否应与对象具有相同的生存期? 当然,这不是一个严格的crterion,它在所有情况下都给出正确的答案,但它经常工作得很好,而且非常简单… |
6
0
我总是把变量传递给函数。您永远不知道什么时候需要在不同的上下文中使用该函数,参数也会改变。 |
7
-6
做Python社区所做的。 提示1:不要在隐私上浪费时间。 提示2:隐私通常更容易被授权给 策略 插件(或“注入”)比复杂的私有属性和方法。 提示3:隐私使单元测试比需要的更复杂。把事情公之于众更容易。 提示4:只有当您的代码将由需要通过隐藏算法来保护知识产权的律师管理时,才使用private。这确实发生了,当它发生时,很明显你必须将事情声明为私有的以防止泄露。 |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 6 年前 |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 6 年前 |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
RudziankoÅ · 合并排序数组算法 7 年前 |
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
hippietrail · 确定浮点数中前导零的数量 7 年前 |