Нужен совет (или паттерн).
От: Sharov Россия  
Дата: 31.01.17 14:04
Оценка:
Здравствуйте, господа.

Такая ситуация. Допустим имеется интерфейс, типа:
public interface IUserStorageInfo
    {
      
        string GenerateStoragePathForFile(string fileName,string projectName,Guid entityGuid);
        
        string GenerateStoragePathForFile(string fileName,EntityTypeEnum entityTypeEnum);

     string GenerateStoragePathForFile(string fileName,Datetime dt);
    }


У этого интерфейсам есть разные (пока три) реализации. Причем каждой реализации нужен только один GenerateStoragePathForFile, все остальные честно бросают NotImplementedException. Полный ужас и идиотизм, согласен. Продолбал момент, что называется. И вот сейчас задумался как это дело унифицировать. Единственное, что приходит на ум -- создать метод типа
    string GenerateStoragePathForFile(string fileName,StorageData sd);


И каждая реализация будет лезть в этот StorageData по потребностям. Вроде вариант нормальный, взывающая сторона заполняет релевантной инф-ей объект StorageData, и каждая реализация берет то, что нужно. Можно наследоваться от класса, и передавать параметры в конструкторе. Проблема в том, что некоторые реализации я пихаю в контейнер(TinyIoc), и все используют этот экземпляр (по сути singleton).

Что скажете, посоветуете? Мне пока вариант с унифицированным объектом больше всего нравится.
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.