Сообщение Re[5]: О пользе Dependency Injection от 14.01.2021 4:54
Изменено 14.01.2021 6:04 vsb
Re[5]: О пользе Dependency Injection
Здравствуйте, Министр Промышленности, Вы писали:
МП>
Поздравляю, вы только что показали пример использования паттерна Dependency Injection.
А фреймворк даст возможность не писать эти две строчки. Которые разрастутся в сотни и тысячи строк однотипного скучного кода в реальном приложении с десятками-сотнями объектов. Если писать это вручную, нужно будет самому продумывать порядок создания объектов, причём этот порядок с развитием приложения может меняться. В этом нет ничего сложного, особенно если пользоваться setter-ами, а не конструкторами (тогда можно не задумываться про порядок создания объектов и круговые зависимости), но этот код легко генерируется, поэтому и пользуются фреймворками.
МП>
МП> var userDao = DatabaseHelper.GetUserDao();
МП> var authService = new AuthService(userDao);
МП>Поздравляю, вы только что показали пример использования паттерна Dependency Injection.
А фреймворк даст возможность не писать эти две строчки. Которые разрастутся в сотни и тысячи строк однотипного скучного кода в реальном приложении с десятками-сотнями объектов. Если писать это вручную, нужно будет самому продумывать порядок создания объектов, причём этот порядок с развитием приложения может меняться. В этом нет ничего сложного, особенно если пользоваться setter-ами, а не конструкторами (тогда можно не задумываться про порядок создания объектов и круговые зависимости), но этот код легко генерируется, поэтому и пользуются фреймворками.
Re[5]: О пользе Dependency Injection
Здравствуйте, Министр Промышленности, Вы писали:
МП>
Поздравляю, вы только что показали пример использования паттерна Dependency Injection.
А фреймворк даст возможность не писать эти две строчки. Которые разрастутся в сотни и тысячи строк однотипного скучного кода в реальном приложении с десятками-сотнями объектов. Если писать это вручную, нужно будет самому продумывать порядок создания объектов, причём этот порядок с развитием приложения может меняться. В этом нет ничего сложного, особенно если пользоваться setter-ами, а не конструкторами (тогда можно не задумываться про порядок создания объектов и круговые зависимости), но этот код легко генерируется, поэтому и пользуются фреймворками. Но вы можете не пользоваться и писать всё руками, DI от этого не исчезнет.
МП>
МП> var userDao = DatabaseHelper.GetUserDao();
МП> var authService = new AuthService(userDao);
МП>Поздравляю, вы только что показали пример использования паттерна Dependency Injection.
А фреймворк даст возможность не писать эти две строчки. Которые разрастутся в сотни и тысячи строк однотипного скучного кода в реальном приложении с десятками-сотнями объектов. Если писать это вручную, нужно будет самому продумывать порядок создания объектов, причём этот порядок с развитием приложения может меняться. В этом нет ничего сложного, особенно если пользоваться setter-ами, а не конструкторами (тогда можно не задумываться про порядок создания объектов и круговые зависимости), но этот код легко генерируется, поэтому и пользуются фреймворками. Но вы можете не пользоваться и писать всё руками, DI от этого не исчезнет.