Slide 1

Slide 1 text

DEPENDENCY INJECTION ANTI-PATTERNS @SHINDYU

Slide 2

Slide 2 text

DEPENDENCY INJECTION ANTI-PATTERNS SELF-INTRODUCTION ▸ ৽ಊ ܟོ / @shindyu ▸ ϠϑΦΫ! iOS ▸ ٕज़ॻయ̑ͰςετຊΛॻ͖·ͨ͠ʂ
 https://booth.pm/ja/items/1040471

Slide 3

Slide 3 text

DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION ▸ ґଘੑͷ஫ೖ
 ʰ͋ΔΦϒδΣΫτʹରͯ͠ґଘؔ܎ͷ͋ΔผͷΦϒδΣΫ τΛ֎෦͔Β౉͢͜ͱʱ ▸ ੹຿ͷ෼཭ ▸ ςετ͠΍͍͢

Slide 4

Slide 4 text

DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸ Property Injection ▸ Method Injection ▸ Ambient Context

Slide 5

Slide 5 text

DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸ Property Injection ▸ Method Injection ▸ Ambient Context

Slide 6

Slide 6 text

DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸ Property Injection ▸ Method Injection ▸ Ambient Context

Slide 7

Slide 7 text

DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸ Property Injection ▸ Method Injection ▸ Ambient Context

Slide 8

Slide 8 text

DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸ Property Injection ▸ Method Injection ▸ Ambient Context

Slide 9

Slide 9 text

DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸ Property Injection ▸ Method Injection ▸ Ambient Context

Slide 10

Slide 10 text

DEPENDENCY INJECTION ANTI-PATTERNS ANTI-PATTERNS ▸ Control Freak ▸ Bastard Injection ▸ Service Locator

Slide 11

Slide 11 text

DEPENDENCY INJECTION ANTI-PATTERNS CONTROL FREAK ▸ DI͞Ε͍ͯͳ͍ঢ়ଶ ▸ StableͱVolatileΛݟۃΊͯDIύλʔϯΛ࢖͏

Slide 12

Slide 12 text

DEPENDENCY INJECTION ANTI-PATTERNS STABLE / VOLATILE ▸ Stable Dependency : ҆ఆͨ͠ґଘؔ܎ ▸ ex) ಺෦ͰͷΈར༻͢ΔϞδϡʔϧ ▸ Volatile Dependency : شൃੑͷ͋Δґଘؔ܎ ▸ ex) ཚ਺ɺ࣌ؒΛར༻͢ΔϞδϡʔϧɺ
 ɹ ฒߦ։ൃதͰFIX͍ͯ͠ͳ͍ґଘؔ܎

Slide 13

Slide 13 text

DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION ▸ ConstructorͷύϥϝʔλʹσϑΥϧτ஋ͱͯ͠
 ֎෦ϞδϡʔϧΛࢦఆͯ͠͠·ͬͨঢ়ଶ

Slide 14

Slide 14 text

DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION

Slide 15

Slide 15 text

DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION

Slide 16

Slide 16 text

DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION ▸ ςετ͸ॻ͖΍͍͢ ▸ ͕ɺ݁ہ͸֎෦Ϟδϡʔϧͷ࣮૷ʹґଘ͍ͯ͠ΔͷͰμϝ

Slide 17

Slide 17 text

DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION ▸ ͜Ε͸͓ͦΒ͘Bastard InjectionͰ͸ͳ͍͕
 ґଘؔ܎͕ΦϓγϣφϧͳΒMethod Injection౳Ͱྑ͍

Slide 18

Slide 18 text

DEPENDENCY INJECTION ANTI-PATTERNS SERVICE LOCATOR

Slide 19

Slide 19 text

DEPENDENCY INJECTION ANTI-PATTERNS SERVICE LOCATOR

Slide 20

Slide 20 text

DEPENDENCY INJECTION ANTI-PATTERNS SERVICE LOCATOR ▸ ґଘؔ܎Λ҉໧తʹӅ͍ͯ͠Δ ▸ ServiceLocator΁ͷґଘ͕ൃੜ͍ͯ͠Δ ▸ ServiceLocatorܦ༝Ͱ࡞ΒΕͨ΋ͷ͔֬ೝ͢Δඞཁ͕͋Δ

Slide 21

Slide 21 text

DEPENDENCY INJECTION ANTI-PATTERNS SUMMARY ▸ Dependency Injection ▸ Constructor Injection ▸ Property Injection ▸ Method Injection ▸ Ambient Context ▸ Anti-Patterns ▸ Control Freak ▸ Bastard Injection ▸ Service Locator ͍ͨͩ͠ύλʔϯΛཧղͯ͠ΑΓྑ͍ίʔυΛʂ

Slide 22

Slide 22 text

DEPENDENCY INJECTION ANTI-PATTERNS REFERENCES ▸ http://ilya.puchka.me/dependency-injection-in-swift/ ▸ https://www.future-processing.pl/blog/introduction-to- dependency-injection/