1 c oop car-analogy
(这是一个类似C的环境)假设我有两个实例对象,一个汽车和一个bodyShop.该车有一个颜色iVar和相应的加速器.bodyShop有一个名为"paintCar"的方法,它将接收一个汽车对象并改变其颜色.
至于实现,为了让bodyShop实际上能够改变汽车对象的颜色,我看到了两种方法.
使用"&"运算符传入指向汽车的指针.然后bodyShop可以告诉汽车执行一些必须改变颜色的方法,或者它可以直接使用汽车的存取器.
按值传递汽车对象,执行相同类型的操作以更改颜色,然后让方法返回具有新颜色的汽车对象.然后将原始汽车对象分配给新汽车对象.
选项1对我来说似乎更直接,但我想知道它是否符合OOP最佳实践.一般来说,对于"最大OOP","&"运算符是好还是坏?或者,也许我完全错过了一个更好的选择,可以使这个超级OOPer.请指教 :)
选项1是首选:
bodyShop可以告诉汽车执行一些必须改变颜色的方法,或者它可以直接使用汽车的存取器.
更好的是......创建一个IPaintable接口.有车实施IPaintable.让BodyShop依赖于IPaintable而不是Car.这样做的好处是: