Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 17236|Ответ: 0

[Связь] Инъекция зависимости — каковы преимущества её применения?

[Скопировать ссылку]
Опубликовано 10.02.2019 18:14:29 | | |
Во-первых, создание связанных объектов классов действительно может осуществляться новыми. Однако, когда проект слишком велик и объект имеет слишком много зависимостей, нам нужно писать много нового кода при построении объекта, и может появиться метод прямого вызова объекта после забыта инстанцировать некоторые зависимые объекты, тогда появится исключение null указателя. Если этот процесс оставить на управление контейнером, нам не нужно беспокоиться о создании объектов, и при использовании зависимых объектов не будет исключений нулевых указателей, а код можно упростить.
Во-вторых, атрибуты, используемые в процессе вызова метода, могут быть атрибутами экземпляра, если все они определены как статические, что насчёт данных, используемых в методе? Если вы определите все методы как статические, то свойства класса, на который ссылается метод, также должны быть определены как статичные, что эквивалентно глобальным атрибутам, поэтому обязательно возникнут проблемы синхронизации данных.
На самом деле, логично задуматься о принципах программирования, изложенных в шаблоне проектирования, направленных на создание высокочитаемого, простого в обслуживании и масштабируемого кода. С наилучшими пожеланиями!

Удобно собирать программное обеспечение в виде строительных блоков, а также создавать программное обеспечение с высокой когезией и низкой связностью (извлекая зависимости из кода)
Совместная разработка, отладка кода (не нужно интегрировать компоненты, их можно протестировать отдельно), и созданный код более надёжный.

Разработка проекта уделяет внимание высокой когезии и низкой связности, а использование инъекции зависимостей позволяет избежать использования новой области ключевых слов для создания объектов, тем самым снижая связь между классами






Предыдущий:c# Marshal.PtrToStructure
Следующий:Шифрование, расшифровка и ассемблер
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com