我总是会与谁应该知道另一个人混淆。谁应该知道对方?
例如:
Circle.Draw(&canvas)
或Canvas.Draw(&circle)
或Draw(&canvas, &circle)
EmployeeVector.Save(&file)
或File.Save(&employee_vector)
甚至还在
void operator() (Employee e) { Save(e.Serialize();}
for_each(employees.begin(), employees.end(),File)
我想我最终会“抽象”太多,因为我拥有各种各样的适配器,所以没有人知道任何人。
如果画布改变了怎么办?比你不得不更改圈子代码而不是只是画布代码。 –
取决于您是否使用画布的抽象 –
@Joe无论如何您都必须更改代码。如果更改画布,则必须修改'Canvas'中的一组方法,或者修改每个形状类中的方法。无论哪种方式,修改“Circle”类中与圆有关的代码比在“Canvas”类中修改代码更有意义。另外,为什么画布会改变?它的接口可能不得不保持更改以避免打破呼叫者。 –