人, 几个月前,我为银行创建了一个类模型,它具有BankAccount类,具有属性(属性)平衡(以及其他)。我还有一个与BankAccount相关联的Transaction类,用于存储每个帐户事务。存储交易后,我总是更新余额。在我公司工作的开发人员之一说我有平衡属性并不是一个好主意,但他拒绝解释原因。他说很明显。我看不出任何明显的错误。对我来说,每次我需要它时通过处理所有交易来计算余额似乎并不聪明。我错过了什么吗?
答案 0 :(得分:0)
每次添加,删除或修改交易时,必须重新计算余额。并且很有可能其中一件事会发生在由不了解或忘记平衡的其他人编写的代码中。您的开发人员可能已经多次烧过这种方式。对于他们来说,每次有人想要查看余额时重新计算余额的成本与错误的余额的成本和尴尬相比是微不足道的。重新计算还可以减少和简化程序 - 总是一件好事。
一般来说,计算机时间--CPU和磁盘以及其他所有东西 - 都很便宜。花费在自由度上以提高可靠性并节省程序员时间。
现在,如果你有一个程序需要200毫秒来总结交易,而且该程序每秒在余额上获得10,000个查询,那么你的方法就开始变得有意义了。
答案 1 :(得分:0)
就我个人而言,只要我希望获得对objects variables
的访问权限,我就会使用properties
,即使它只是getter
public
。
getter
并非总是return foo
,有时您需要初始化其他objects
或执行日志记录。同样地,setter
为validating
尝试分配给value
的新variable
提供了一种简洁的机制。
确定在直接访问variable
之前可以执行这两个示例,但如果您经常访问它,则不希望编写object initialisation
和validation
代码每次。将它放在一个集中的地方更方便,它适合封装。
我建议你再次问你的同事为什么他认为这是个坏主意。他对解释他的推理应该没有任何保留意见。