将对象或对象属性传递给函数?

时间:2018-01-19 13:48:46

标签: matlab

是否有关于如何将对象传递给函数的指南或建议?是否建议始终将完整对象传递给函数:

calculateSomething(car1, car2, aircraft)

或者仅传递函数真正需要的属性更好吗?

calculateSomething(car1.speed, car1.length, car2.speed, aircraft.height)

第一种方法似乎更方便,特别是当函数需要更多属性时。但是,我的直觉告诉我,第二种方法的计算效率更高,因为函数不必处理完整的对象。

是否有针对此的一般编程建议,还是针对每个功能在可读性和速度之间进行权衡?

1 个答案:

答案 0 :(得分:1)

永远不要直接传递属性。因为这会破坏面向对象编程的原则,(Encapsulation)特别是如果它涉及对属性进行更改。

始终使用getter和setter来更改对象属性。