Я только что произвел рефакторинг нового класса домена из класса презентатора, но не могу понять, где его создать.
Это часть более масштабной работы по рефакторингу с плохо поддерживаемым устаревшим проектом.
Presenter в настоящее время создается с помощью события OnLoad представления, и представление передается в качестве параметра в конструкторе. Все открытые методы в презентере не имеют параметров и возвращают void. Они взаимодействуют с представлением, используя общие свойства представления.
Вид, являющийся по сути скромной формой, полностью зависит от ведущего во всем.
Это типичный шаблон пассивного просмотра, и я хотел бы продолжать придерживаться его. Что приводит меня к моей дилемме. Мне нужно создать экземпляр моего нового объекта домена для использования докладчиком.
- Если я пропущу его через конструктор, то представление должно его создать и получить ненужную зависимость.
- Если я создам его где-нибудь в презентере, я не могу заменить его фиктивным объектом в своих модульных тестах.
- Если я сделаю это публичным свойством презентатора, я введу зависимость порядка создания от методов презентатора, где он используется, и я до сих пор не решил, какой внешний класс отвечает за его создание.
В настоящее время я не использую никаких структур внедрения зависимостей. Хотя я заинтересован в его использовании в будущем, исходный код все еще очень хрупок, чтобы внедрить стороннюю платформу.
Я открыт для любых предложений.