Когда и где использовать внедрение зависимостей с Guice? - PullRequest
4 голосов
/ 17 июля 2010

Я недавно изучал Guice в университетском курсе и видел видео о вводе-выводе Google об этом . В видео они утверждают, что используют его в каждом проекте Google, включая Wave и т. Д. Мне было интересно - действительно ли Guice вездесущ? Действительно ли это необходимо знать программистам на Java? Я должен всегда использовать это по фабрике?

Спасибо

Ответы [ 2 ]

5 голосов
/ 17 июля 2010

Guice - это структура внедрения зависимостей. При использовании Java вы должны определенно учитывать структуру внедрения зависимостей (DI). DI может сэкономить вам много кода для (сетевой) безопасности / аутентификации, управления транзакциями, ведения журналов, доступа к базе данных и получения более чистого кода.

В качестве альтернативы вы можете рассмотреть Spring. Guice есть, или, по крайней мере, его было проще использовать, поскольку он не слишком полагался на XML, но Spring догнал его с последней версии (с использованием аннотаций, javaconfig и т. Д.).

В любом случае, используйте DI-фреймворк поверх собственного кода фабрики, кода платформы транзакций (транзакция. Транзакция, наконец, и т. Д.), Одиночных кодов (например, статических методов getInstance) и т. Д.

4 голосов
/ 17 июля 2010

действительно ли Guice вездесущ? Действительно ли это необходимо знать программистам на Java?

Вне Google - нет, не совсем. Я не говорю, что это не очень хороший продукт, просто сейчас он не очень широко используется. Существуют и другие, более устоявшиеся структуры, обеспечивающие внедрение зависимостей, такие как Spring или EJB. Основное отличие состоит в том, что Guice only делает внедрение зависимостей.

Должен ли я всегда использовать его на заводе?

Конечно нет. Внедрение зависимостей - полезный шаблон, но, как и для всех полезных инструментов, есть правильное и неправильное время для его использования.

...