barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

четверг, 23 июня 2011 г.

Шаблон проектирования Inversion of Control (IOC)

Вместо:
- класс сам создает экземпляры сторонних классов (ресурсов), от которых он зависит
предлагается:
- класс получает объекты этих классов (ресурсов) одним из следующих способов: как параметр конструктора / setter-метод / параметр того метода, где эти объекты непосредственно нужны

"+": большая гибкость при использовании класса (особенно когда тип передаваемых объектов задается не конкретным классом, а интерфейсом)
"+": упрощается unit-тестирование. Можно контролировать состояние передаваемых классу объектов непосредственно в коде самого текста, а также заменять их мок-объектами

Комментариев нет:

Отправить комментарий