в моей реализации, у меня есть интерфейс как: ICachingManager
. У меня сейчас одна реализация. Я также создал класс менеджера как:
public class CachingManager
{
#region Members
private ICachingManager service;
#endregion
#region Constructors
public CachingManager(ICachingManager service)
{
this.service = service;
}
#endregion
#region Public Methods
public void EnCache<T>(string key, T value)
{
this.service.EnCache<T>(key, value);
}
public T DeCache<T>(string key)
{
return this.service.DeCache<T>(key);
}
#endregion
}
Если у меня была одна реализация, то я легко могу зарегистрировать класс CachingManager в Unity, автоматически Unity разрешает и внедряет ICachingManager.
Если у меня было несколько реализаций, использующих именованные типы, то как я могу использовать Unity? Нужно ли использовать абстрактную фабрику, чтобы решить, какой именованный тип инициализировать?
Является ли хорошей идеей использовать такой составной класс или напрямую использовать реализации интерфейса с Abstract Factory?