Информация об изменениях

Сообщение Re[5]: О пользе Dependency Injection от 14.01.2021 4:54

Изменено 14.01.2021 6:04 vsb

Re[5]: О пользе Dependency Injection
Здравствуйте, Министр Промышленности, Вы писали:

МП>
МП>    var userDao = DatabaseHelper.GetUserDao();

МП>    var authService = new AuthService(userDao);
МП>


Поздравляю, вы только что показали пример использования паттерна Dependency Injection.

А фреймворк даст возможность не писать эти две строчки. Которые разрастутся в сотни и тысячи строк однотипного скучного кода в реальном приложении с десятками-сотнями объектов. Если писать это вручную, нужно будет самому продумывать порядок создания объектов, причём этот порядок с развитием приложения может меняться. В этом нет ничего сложного, особенно если пользоваться setter-ами, а не конструкторами (тогда можно не задумываться про порядок создания объектов и круговые зависимости), но этот код легко генерируется, поэтому и пользуются фреймворками.
Re[5]: О пользе Dependency Injection
Здравствуйте, Министр Промышленности, Вы писали:

МП>
МП>    var userDao = DatabaseHelper.GetUserDao();

МП>    var authService = new AuthService(userDao);
МП>


Поздравляю, вы только что показали пример использования паттерна Dependency Injection.

А фреймворк даст возможность не писать эти две строчки. Которые разрастутся в сотни и тысячи строк однотипного скучного кода в реальном приложении с десятками-сотнями объектов. Если писать это вручную, нужно будет самому продумывать порядок создания объектов, причём этот порядок с развитием приложения может меняться. В этом нет ничего сложного, особенно если пользоваться setter-ами, а не конструкторами (тогда можно не задумываться про порядок создания объектов и круговые зависимости), но этот код легко генерируется, поэтому и пользуются фреймворками. Но вы можете не пользоваться и писать всё руками, DI от этого не исчезнет.