( Отказ от ответственности: Этот вопрос не относится к 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;
}
Синглтоны связаны с глобальными переменными; в этом случае нет государства.
Синглтоны также связаны с жестко закодированными зависимостями. В этом случае знание определенного типа является гарантированным.