Мне нужна одноэлементная фабрика, которая генерирует объекты IPropertyMapper. Фабрика имеет словарь, который содержит ссылки на делегатов Func. Словарь неизменен, я просто хочу быстрый доступ. Будет ли этот код ниже поточно-ориентированным? Является ли вызов Create () потокобезопасным?
определение класса:
public sealed class PropertyMapperFactory
{
private static readonly PropertyMapperFactory _instance = new PropertyMapperFactory();
private readonly Dictionary<int, Func<TResult>> _handlers;
private PropertyMapperFactory() {
this._handlers = new Dictionary<...>();
this._setTimeHandler();
}
public static PropertyMapperFactory GetFactory() {
return _instance;
}
//Is this thread safe?
public IPropertyMapper Create(UnitSetting _units ) {
return new PropertyMapper(this.handler[0])
}