(这是一个类似 C 的环境)假设我有两个实例对象,一个汽车和一个 bodyShop。该车具有颜色 iVar 和相应的附件。bodyShop 有一个名为“paintCar”的方法,它将接收一个汽车对象并改变它的颜色。
至于实现,为了让 bodyShop 实际上能够改变汽车对象的颜色,我看到了两种方法。
使用“&”运算符传递一个指向汽车的指针。然后 bodyShop 可以告诉汽车执行某种方法,它必须改变颜色,或者它可以直接使用汽车的访问器。
按值传入汽车对象,做同样的事情来改变颜色,然后让该方法返回一个具有新颜色的汽车对象。然后将原始汽车对象分配给新汽车对象。
选项 1 对我来说似乎更直接,但我想知道它是否符合 OOP 最佳实践。一般来说,对于“最大 OOP”,“&”运算符是好还是坏?或者,也许我完全错过了一个更好的选择来制作这个超级 OOPer。请指教 :)