2014-01-22 4 views
0

У меня есть класс, который зависит от другого класса. Скорее, чтобы создать экземпляр зависимости от класса, я требую, чтобы он был передан в одном и только конструкторе. Действительно ли это приводит к инъекции указанной зависимости?инъекция зависимостей - это ИТ?

Так смущен!

+0

Вы даже посмотрели тег [зависимость-инъекции] (http://stackoverflow.com/tags/dependency-injection/info)? – Steven

ответ

1

В некотором смысле да. Maybe this will help you.

Цитируется другой Stack Overflow Ответ:

Лучшее определение, которое я нашел до сих пор является один Джеймс Шор:

"Dependency Injection" is a 25-dollar term for a 5-cent concept. [...] Dependency injection means giving an object its instance 

переменные. [...].

Существует статья Мартина Фаулера, которая может оказаться полезной.

+0

Увы, я думаю, мне нужно читать статью еще 150 раз. Благодаря! – user2919960

1

Вы идете по правильному пути. Хорошее начало. На нем есть хороший article от Martin Fowler.

Но ключ ищет основную причину, по которой мы делаем этот путь. В основном нам нужно отделить конфигурацию объектов от их использования. то это даст вам гибкость для изменения в зависимости от бизнес-правил.

Например, если у вас есть класс Employee и Employee Class, у вас есть метод CalculateBonus и этот метод, используя класс BonusCalculator для вычисления бонуса. Если в классе компании используется Employee.CalculateBonus для подсчета бонуса, то ответственность за класс Bonus за класс BonusCalculator лежит на классе Employee и передается классу Employee с помощью метода, свойства или через конструктор.

Дни оплаты, отпуск и т. Д. Поступают из класса Занятия, а BonusCalculator является внешним по отношению к классу Employer, поэтому мы делегируем инициализацию ответственности BonusCalculator вызывающему классу.

Этот способ завтра изменит тип изменения BonusCalculator, это не повлияет на класс Employee.

Надеюсь, это помогло вам более четко понять концепцию.

Смежные вопросы