【发布时间】:2011-11-10 21:45:49
【问题描述】:
我正在寻找解决以下问题的最佳实践方法。
我希望人们对他们将使用哪种方法以及为什么使用以下方案提出意见:
我有一个 Class,它在指定 DateTime 时由工厂实例化。
我应该使用哪种方法?
静态“助手”类:Class c = ClassHelper.GetClass(DateTime);
实例类型的静态方法:Class c = Class.GetClass(DateTime);
静态扩展类/方法:Class c = DateTime.GetClass();
目前我更倾向于静态辅助类,因为我以前从未在实例类上使用静态工厂方法,但对我来说,在实例类上使用静态方法似乎很有意义上课?
在单元测试或组织测试方面我应该考虑什么?
目前我已经避开了扩展方法,因为我读到应该谨慎使用扩展方法,通常是在您无法访问要扩展的源代码的情况下?
干杯,
詹姆斯
【问题讨论】:
-
在不了解情况的情况下很难回答这个问题,因为如果不是异常情况,您可以使用构造函数。不过,最后一个几乎肯定很糟糕。
标签: c# oop extension-methods static-methods helpers