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