假设我有一个对象Employee_Storage
,其中包含数据库连接数据成员。该数据成员应该存储为指针还是引用?
不必做任何
NULL
检查。 (无论如何,NULL检查有多重要?)易于设置
Employee_Storage
(或MockEmployee_Storage
)测试目的。
通常,我习惯于始终将数据成员存储为引用。但是,这使我的模拟对象难以设置,因为现在我必须传递true/mock对象,而不是能够传递
NULL
(大概在默认构造函数中)。是否有一个良好的经验法则可以遵循,尤其是针对可测试性?
最佳答案
如果在构造时分配了引用,则最好将其存储为数据成员,并且确实没有理由更改它们。由于无法重新分配引用,因此它们的范围非常有限。
通常,我通常将其存储为指针(或某种形式的模板化智能指针)。这要灵活得多-既可以进行测试(如您所述),也可以按照正常使用情况进行。