Symfony2 Lazy Services Когда использовать?

У меня вопрос по поводу ленивых сервисов symfony2. Когда мы должны использовать ленивые услуги, и когда мы должны избегать их? Есть ли накладные расходы, если мы используем ленивые услуги?

6

Решение

От документация:

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

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

Да, есть некоторые накладные расходы. Но это минимально. Вы должны избегать использования ленивых сервисов, когда они вам не нужны. (Легко как то).

Пример:

Если ваша служба A имеет 3 метода и зависит от B и C. Если вы знаете, что B используется во всех 3 методах, а C i используется только в одном методе, то вы может рассмотрите объявление C как ленивый. Вы должен объявить ленивым, если C — тяжелый сервис. В этом примере не будет никакой выгоды объявлять B ленивым … так что не … =)

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]