G'day,
Я пытался выполнить поиск по теме, но не смог ничего найти, по крайней мере, пока.
У меня есть 3 доменных объекта, которые реализуют интерфейс IEntity. Я хотел бы создать общий слой отображения данных для выполнения операций создания, обновления, удаления в IEntity. Проблема в том, что каждая конкретная сущность сохраняется в отдельной таблице, поэтому мне кажется, что мне нужно иметь 3 конкретных картографа для решения этой проблемы.
Однако клиент ничего не знает о конкретных объектах - он знает только об абстракции IEntity. И, очевидно, я не хочу, чтобы конкретные объекты знали что-либо о картостроителях.
Так что, похоже, у клиента должен быть способ получить маппер нужного типа. Будет ли использоваться шаблон локатора службы в подобных случаях?
Что-то вроде:
public IEntityDataMapper GetMapper(IEntity entity)
Какие еще способы достичь этой цели? Является ли случайно какой-то признак того, что моя модель предметной области вначале несколько ошибочна?
Пример того, что я пытаюсь выполнить:
(код клиента)
IEntityMapper mapper;
IEntity abstractEntity;
mapper.Update(abstractEntity);
Логика обновления для каждой сущности может сильно отличаться.