2011-11-19 232 views
0

此问题已被编辑以询问有关具体示例,因为原始问题被视为无法回答。将对象或值传递给函数

给定一个需要显示有关各种对象(包括相似和继承对象)信息的应用程序,最好是将基类对象传递给显示函数并允许它查询对象以确定要显示的数据;或者你应该通过价值传递每个字段。通过值传递的优点不需要直接依赖于它们所代表的对象,从而使显示(UI)与业务规则对象保持隔离。

+2

“这取决于”,非常*不*语言不可知:一般功能很好,但不一定会覆盖其他合同。 – 2011-11-19 02:39:56

+2

这不是建设性的(意味着不可回答)。这就像“有什么更好 - 汽车还是卡车?” - 正确的答案取决于你是否需要在舒适或干草堆中拖拉人。 “什么更好?一只狗还是一只猫?”取决于你是否试图摆脱老鼠,或者你想有一只宠物玩耍并保护你的房子。投票结束。抱歉。 :) –

+0

感谢您的反馈,我改变了这个问题,以反映过去我一直在努力的一个具体例子。希望有所帮助。 – TownCube

回答

0

一般而言,您应该传递方法完成工作所需的最少量信息。例如,如果某个方法根据出生日期计算某个人的年龄,则不需要传入整个Person对象,只需要该人的出生日期和当前日期。

通过遵循上述方法,您可以保持方法loosely coupled,这使得它们更易于维护。

就你而言,你必须平衡你是否需要访问这些方法中很多基类的字段,或者如果你只需要访问几个。如果它有很多字段,那么传递整个对象可能更有意义。这是一种良好耦合(参见本答案的第一部分)之间的平衡行为,但同时避免将大量参数传递给方法。