从速度和效率的角度来看:哪个被认为是最佳实践,创建一个临时对象或分解一个(可能是临时的)参数对象?
在这个例子中,为了 DRY 目的,函数的实现是互斥的。两者都不会如图所示实施,但一个将根据另一个将委派实际工作来实施。
void SetPoints(double xA, double yA, double xB, double yB, double xC, double yC);
void SetPoints(const Point& A, const Point& B, const Point& C);
///Option one: create temporary objects:
void SetPoints(double xA, double yA, double xB, double yB, double xC, double yC) {
SetPoints(Point(xA, yA), Point(xB, yB), Point(xC, yC));
}
//Option two: decompose object arguments
void SetPoints(const Point& A, const Point& B, const Point& C) {
SetPoints(A.GetX(), A.GetY(), B.GetX(), B.GetY(), C.GetX(), C.GetY());
}