Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dependency Injection

Dependency Injection

[email protected]

April 23, 2021
Tweet

Other Decks in Programming

Transcript

  1. #FOFGJUTPG%* w -BUFCJOEJOH 
 5IFBCJMJUZUPTXBQPVUPOFTFSWJDFXJUIBOPUIFS w &YUFOTJCJMJUZ 
 5IFBCJMJUZUPBEEOFXGFBUVSFTBOEFYUFOEFYJTUJOHGFBUVSFT w

    1BSBMMFMEFWFMPQNFOU 
 5IFBCJMJUZUPEFWFMPQDPEFJOQBSBMMFM w .BJOUBJOBCJMJUZ 
 5IFBCJMJUZUPNBJOUBJOUIFPWFSBMMBQQMJDBUJPOFBTJMZ w 5FTUBCJMJUZ 
 5IFBCJMJUZUPCFVOJUUFTUFE 

  2. 4UBCMFEFQFOEFODJFT w 5IFDMBTTPSNPEVMFBMSFBEZFYJTUT w &YQFDUUIBUOFXWFSTJPOTXPO`UDPOUBJOCSFBLJOH DIBOHFT w 5IFUZQFTJORVFTUJPODPOUBJOEFUFSNJOJTUJD BMHPSJUINT w

    /FWFSFYQFDUUPIBWFUPSFQMBDF XSBQ EFDPSBUF  PS*OUFSDFQUUIFDMBTTPSNPEVMFXJUIBOPUIFS FY.BOZUZQFTJO'PVOEBUJPO  
 -JCSBSJFTFODBQTVMBUFBMHPSJUINT
  3. 7PMBUJMFEFQFOEFODJFT w *OUSPEVDFBSFRVJSFNFOUUPTFUVQBOEDPOGJHVSF BSVOUJNFFOWJSPONFOUGPSUIFBQQMJDBUJPO FY 63-4FTTJPO 'JMFTZTUFN  w %PO`UZFUFYJTU

    PSJTTUJMMJOEFWFMPQNFOU PXO MJCSBSZ  w "SFO`UJOTUBMMFEPOBMMNBDIJOFTJOUIF EFWFMPQNFOUPSHBOJ[BUJPO w $POUBJOOPOEFUFSNJOJTUJDCFIBWJPS FY%BUF
  4. %*4DPQF .PTUJNQPSUBOUQPJOUT w 0CKFDU$PNQPTJUJPO 
 5IFUBTLPGDSFBUJOHJOTUBODFTPG%FQFOEFODJFT w -JGFUJNF.BOBHFNFOU 
 $POUSPMXIFOJOTUBODFTBSFDSFBUFEBOEXIFO

    UIFZHPPVUPGTDPQF w *OUFSDFQUJPO $SPTT$VUUJOH$PODFSOT 
 .PEJGZEFQFOEFODJFTCFGPSFQBTTJOHUIFNPOUP UIFDMBTTFTDPOTVNJOHUIFN
  5. 4FSWJDF-PDBUPS /FHBUJWFTJEF w -PPLTHPPE#VUOFFETBOFYUSBEFQFOEFODZBOENJHIUMPTF SFVTBCJMJUZPGUIFDPOTVNFS`TNPEVMF w 5IFSFBSFCFUUFSPQUJPOT TVDIBT$POTUSVDUPS*OKFDUJPO  BWBJMBCMF

    TPUIJT%FQFOEFODZJTSFEVOEBOU w /PUFYQMJDJUMZWJTJCMFUPBDPOTVNFSDMBTT w (FUBSVOUJNFFSSPSJGGPSHPUUPSFHJTUFSBOJOTUBODF w .BLFTJUFBTZUPJOBEWFSUFOUMZJOUSPEVDFCSFBLJOHDIBOHFT XIFOOFXEFQFOEFODJFTBSFBEEFE w "5FTU%PVCMFSFHJTUFSFEJOPOFUFTUDBTFXJMMMFBEUPUIF *OUFSEFQFOEFOU5FTUTDPEFTNFMM/FFE4FUVQBOE5FBSEPXO
  6. $POTUSBJOFE$POTUSVDUJPO 8IBU w 'PSDFTBMMJNQMFNFOUBUJPOTPGBDFSUBJO "CTUSBDUJPOUPSFRVJSFUIFJSDPOTUSVDUPSTUP IBWFBOJEFOUJDBMTJHOBUVSFXJUIUIFHPBMPG FOBCMJOHMBUFCJOEJOH FYSFBEDPOGJHGJMF  w

    %JSFDUMZSFGFSFODFBMM%FQFOEFODJFTGSPNUIF BQQMJDBUJPO`TSPPUXPO`UIBWFUIJTQSPCMFN5IJT PDDVSSFEXIFOSFQMBDJOH%FQFOEFODJFTXJUIPVU SFDPNQJMJOHUIFTUBSUVQQSPKFDU FJUIFS
  7. 4PMVUJPO 'BDBEF4FSWJDF w )JEFBOBUVSBMDMVTUFSPGJOUFSBDUJOH %FQFOEFODJFT BMPOHXJUIUIFJSCFIBWJPS  CFIJOEBTJOHMF"CTUSBDUJPO w 5VSOJNQMJDJUDPODFQUTJOUPFYQMJDJUDPODFQUT

    w 3FQFBUUIJTSFGBDUPSJOHJGIBWFBDPNQMFY BQQMJDBUJPOXIFSFUIFDPOTVNFSFOETVQXJUI UPPNBOZ%FQFOEFODJFTPO'BDBEF4FSWJDFT $SFBUJOHB'BDBEF4FSWJDFPG'BDBEF4FSWJDFT
  8. /PUJDF 5IF-FBLZ"CTUSBDUJPO w 5IJTEPFTO`UNFBOUIBUJOUFSGBDFTDBO`U FYQPTFBOZDPODSFUFDMBTTFT*U`TUZQJDBMMZ GJOFUPFYQPTFCFIBWJPSMFTTEBUBPCKFDUT  TVDIBT1BSBNFUFS0CKFDUT WJFXNPEFMT BOE

    %BUB5SBOTGFS0CKFDUT %50T  w "MXBZTDPOTJEFSXIFUIFSBHJWFO"CTUSBDUJPO NBLFTTFOTFGPSJNQMFNFOUBUJPOTPUIFSUIBO UIFPOFZPVIBWFJONJOE
  9. w UFOEUPHFUCFUUFSXJUIBHF w TVEEFOMZCFDPNFUPPPMEBOEMPTFNPTUPG UIFJSGMBWPS w EFQFOETPONBOZGBDUPST JODMVEJOHUIFPSJHJO BOEWJOUBHFPGUIFXJOF w

    SFMZPOFYQFSUT TPNNFMJFST XIPVOEFSTUBOE XJOFTCFUUFSUIBOXFEP TPXFIBQQJMZMFU UIFNUBLFDPOUSPM 8JOFT "OBMPHZ
  10. $PNQPTFS w BVOJGZJOHUFSNUPSFGFSUPBOZPCKFDUPSNFUIPEUIBU DPNQPTFT%FQFOEFODJFT*U`TBOJNQPSUBOUQBSUPGUIF $PNQPTJUJPO3PPUT w $PNQPTJOHBOENBOBHJOHDPNQPOFOUTJTJUTTJOHMF SFTQPOTJCJMJUZ w EFDJEFTXIFOJOTUBODFTBSFDSFBUFE

    BOECZJUTDIPJDFPG XIFUIFSUPTIBSFJOTUBODFT JUEFUFSNJOFTXIFUIFSB %FQFOEFODZHPFTPVUPGTDPQFXJUIBTJOHMFDPOTVNFS PS XIFUIFSBMMDPOTVNFSTNVTUHPPVUPGTDPQFCFGPSFUIF %FQFOEFODZDBOCFSFMFBTFE
  11. -JGFTUZMF w 4JOHMFUPO-JGFTUZMF OPU4JOHMFUPO1BUUFSO 
 "TJOHMFJOTUBODFJTQFSQFUVBMMZSFVTFE w 5SBOTJFOU-JGFTUZMF 
 /FXJOTUBODFTBSFBMXBZTTFSWFE

    w 4DPQFE-JGFTUZMF 
 "UNPTU POFJOTUBODFPGFBDIUZQFJTTFSWFE QFSBOJNQMJDJUMZPSFYQMJDJUMZEFGJOFETDPQF
  12. 4JOHMFUPO-JGFTUZMF w 8JUIJOUIFTDPQFPGBTJOHMF$PNQPTFS UIFSF`MMPOMZ CFPOFJOTUBODFPGBDPNQPOFOUXJUIUIF4JOHMFUPO -JGFTUZMF&BDIBOEFWFSZUJNFBDPOTVNFSSFRVFTUT UIFDPNQPOFOU UIFTBNFJOTUBODFJTTFSWFE w UIFSFTVMUJOHCFIBWJPSJTTJNJMBSUPUIF4JOHMFUPO

    EFTJHOQBUUFSO CVUUIFTUSVDUVSFJTEJGGFSFOU w HFOFSBMMZDPOTVNFTBNJOJNBMBNPVOUPGNFNPSZ BOEJTFGGJDJFOU FYDFQUJPOUIFJOTUBODFJTVTFESBSFMZ CVUDPOTVNFTMBSHFBNPVOUTPGNFNPSZ
  13. 4DPQFE-JGFTUZMF w CFIBWFMJLF4JOHMFUPO%FQFOEFODJFTXJUIJOBTJOHMF XFMM EFGJOFETDPQFPSSFRVFTUCVUBSFO`UTIBSFEBDSPTTTDPQFT w *GNBOZDPOTVNFSTTIBSFUIFTBNF%FQFOEFODZ UIJT BQQSPBDIDBOCFJOFGGJDJFOU CVUJGUIFJNQMFNFOUBUJPOJTO`U

    UISFBETBGF JUDBOCFIFMQGVM w "MUIPVHIUIFUPQSPPUUZQFT WJFXT DPVMEQPUFOUJBMMZMJWF GPSBMPOHUJNF DPVMETFFBCVUUPOQSFTTBTBSFRVFTU BOE DPVMETDPQFUIJTPQFSBUJPOBOEHJWFJUJUTPXOJTPMBUFE CVCCMFXJUIJUTPXOTFUPG%FQFOEFODJFT
  14. #BE-JGF4UZMF w $BQUJWF%FQFOEFODJFT #VH 
 ,FFQT%FQFOEFODJFTSFGFSFODFECFZPOEUIFJSFYQFDUFE MJGFUJNF w -FBLZ"CTUSBDUJPOT %FTJHOJTTVF

    
 6TFT-FBLZ"CTUSBDUJPOT MFBLJOH-JGFTUZMFDIPJDFTUP DPOTVNFST FYDPOTVNFSTIBWFUPEJTQPTFEFQFOEFODJFT  w 1FSUISFBE-JGFTUZMF #VH 
 $BVTFTDPODVSSFODZCVHTCZUZJOHJOTUBODFTUPUIF MJGFUJNFPGBUISFBE
  15. $SPTT$VUUJOH$PODFSOT &YBNQMFT w "VEJUJOH w -PHHJOH w 1FSGPSNBODFNPOJUPSJOH w 7BMJEBUJPO

    w 4FDVSJUZ w $BDIJOH w &SSPSIBOEMJOH w 'BVMUUPMFSBODF 6*-BZFS %PNBJO-BZFS "1*-BZFS $SPTT$VUUJOH$PODFSOT
  16. 4JOHMF3FTQPOTJCJMJUZ1SJODJQMF 431 w &WFSZDMBTTTIPVMEIBWFBTJOHMFSFBTPOUP DIBOHF w 7JPMBUJOHUIJTQSJODJQMFDBVTFTDMBTTFTUPCFDPNF NPSFDPNQMFYBOEIBSEFSUPUFTUBOENBJOUBJO w $PIFTJPO

    GVODUJPOBMSFMBUFEOFTTPGUIFFMFNFOUT PGBDMBTTPSNPEVMF IFMQTUPGJOEDMBTTFTIBWF NVMUJQMFSFBTPOTUPDIBOHF w $POTUSVDUPS*OKFDUJPONBLFTDPEFTNPSF PCWJPVTXIFOWJPMBUJOHUIF431
  17. %PO`U3FQFBU:PVSTFMG %3: QSJODJQMF w 8PSLJOHJOTZTUFNTXIFSFLOPXMFEHFJTO`U TUBCMF UIFVOEFSTUBOEJOHPGUFODIBOHF SBQJEMZ  w

    )BWJOHTVDILOPXMFEHFEVQMJDBUFENBLFT JUEJGGJDVMUUPLFFQFWFSZUIJOHJOTZOD w 4IPVMETUSJWFUPDFOUSBMJ[FFWFSZQJFDFPG LOPXMFEHFJOBTJOHMFQMBDF w (PFTCFZPOENFSFDPEF BMTPIPMETGPSEPD
  18. 7JPMBUFT431 w )BT1SPEVDUSFMBUFE"1*TOBNFMZ TFFNT 0,  w )BTNVMUJQMFSFBTPOTUPDIBOHF 
 OFFEDSJUFSJBGPSTFBSDIJOHGPSQSPEVDUT

    
 OFFEBEEJUJPOBMJOGPSNBUJPOGPSPSEFS 
 OFFEDIFDLCFGPSFDBODFMMJOHPSEFS w .FUIPETBSFNPTUMJLFMZOPUDPIFTJWF 
 "TJNQMFXBZUPTQPUMPXDPIFTJPOJTUPDIFDLIPXFBTZJU JTUPNPWFTPNFPGUIFDMBTT`TGVODUJPOBMJUZUPBOFXDMBTT
  19. *NQSPWF%FTJHO 4UFQ 4FQBSBUFSFBETGSPNXSJUFT 5IFSFBSFUXPUZQFTPG$SPTT$VUUJOHDPODFSOT w 8IFOTUBUFDIBOHF XSJUF 
 BVEJUJOH WBMJEBUJPO

    GBVMUUPMFSBODF w 8IFOSFBEEBUB SFBE 
 DBDIJOH $BOEJWJEFUIFQSPUPDPMJOUPBSFBEPOMZHSPVQ BOEBXSJUFPOMZHSPVQ
  20. *NQSPWF%FTJHO 4UFQ 'JYJOH0$1VTJOH1BSBNFUFS0CKFDUT w &WFSZ"CTUSBDUJPODPOUBJOTBTJOHMFNFUIPE w &WFSZNFUIPEJTOBNFE&YFDVUF w &WFSZNFUIPEIBTTBNFDPNQMFUJPO IBOEMFS

    3FTVMU &SSPS7PJE  w &WFSZNFUIPEIBTPOFTJOHMFJOQVUQBSBNFUFS $BOFYUSBDUBDPNNPOJOUFSGBDFGSPNUIJT QBUUFSO
  21. 8IBU`TUIFQPJOU w .BLFTUIFDPODFQUPGDPNNBOETFYQMJDJUXJUIPVU DIBOHJOHBOZPGUIFPSJHJOBMBQQMJDBUJPOMPHJD w 0OFDPNNBOESFQSFTFOUTPOFSFTQPOTJCJMJUZ 431 *41  w

    "TJOHMFJOUFSGBDFIBOEMFTBMMDPNNBOET 0$1  w )FMQTXJUIBQQMZJOH$SPTT$VUUJOH$PODFSOTNPSF FGGFDUJWFMZBOEBMTPHJWFTBOFYQMJDJUBOEDPNQJMFS WFSJGJFEDPEJOHDPOWFOUJPO %FTJHOJOHBQQMJDBUJPOTBDDPSEJOHUP40-*%JTUIFXBZ UPLFFQBQQMJDBUJPOTNBJOUBJOBCMF
  22. #VUʜ w *U`TBMXBZTFBTZUPBQQMZ40-*%QSJODJQMFT0OUIF DPOUSBSZ JUDBOCFEJGGJDVMU w *UUBLFTUJNFBOEXJMMOFWFSCF40-*% w .PSFPWFS XSJUJOHNBJOUBJOBCMFTPGUXBSFJTIBSE

    FWFO XIFOUSZJOHUPBQQMZUIF40-*%QSJODJQMFT w %FWFMPQFSTOFFEUPGJOEUIFTXFFUTQPU BQQMZJOH%* BOE40-*%BUUIFSJHIUNPNFOUT