例如:
Circle.Draw(& canvas)或Canvas.Draw(& circle)
或绘制(&画布,&圈)
EmployeeVector.Save(& file)或File.Save(& employee_vector)
甚至还是
我想我最终“抽象”了太多,我有各种适配器,所以没有人知道任何人.
如果您可以绘制的唯一内容是圆圈,那么当然您可以将它放在Canvas中并继续使用.如果Canvas有一个绘制通用Shapes的方法,那么它将落在Shape的各个子类上以绘制自己.例如,圆圈肯定知道如何在画布上绘制自己.我怀疑画布本身知道如何画圆,除非你硬编码功能,这有点杀死了多态的整个想法.
出于同样的原因,向量可能知道如何将自己保存到文件中,但我怀疑文件知道如何处理向量.但是向量可以包含各种各样的东西,因此它应该将大部分工作委托给它的实际元素.所以for_each的想法可能是最好的.