(免责声明:这个问题不是特定于 ASP.NET)
我有一个可以模板化的控件,类似于登录控件:
public abstract class TemplatedControl : CompositeControl
{
public ITemplate Template { get; set; }
protected override void CreateChildControls()
{
var template = this.Template ?? CreateDefaultTemplate();
// ...
}
protected virtual ITemplate CreateDefaultTemplate()
{
return null;
}
}
模板化控件如下所示:
public class FooControl : TemplatedControl
{
public override ITemplate CreateDefaultTemplate()
{
return new FooTemplate();
}
}
我的问题是:单身人士在这里是否合适?
public override ITemplate CreateDefaultTemplate()
{
return FooTemplate.Instance;
}
单例与全局变量相关联;在这种情况下,没有状态。
单例也与硬编码的依赖关系相关联。在这种情况下,需要了解特定类型。