Street of Code

Ep. 20 – OOP Part 4 (Enkapsulácia)


Listen Later

V OOP chceme ochrániť naše objekty pred tým, aby si s nimi každý mohol robiť čo chce. Na toto nám slúži enkapsulácia a o enkapsulácii je aj táto epizóda. Vďaka enkapsulácii vieme skrývať interný stav objektov a prístup k tomuto stavu upraviť podľa potreby – get/set. Vďaka enkapsulácii sú zmeny v kóde lepšie izolované, redukujú sa nám test cases a znižuje sa nám previazanie kódu. Ale pozor, všetko treba brať opäť s mierou.

Stiahnuť
https://wp.streetofcode.sk/wp-content/uploads/2019/08/StreetOfCode-Ep20.mp3

00:00 – 00:29 Úvod

00:30 – 02:06 Čo je to enkapsulácia
02:07 – 03:55 Príklad – auto
03:56 – 06:47 Načo sa používa enkapsulácia
06:48 – 11:12 Access modifiers
11:13 – 15:43 Prečo nemôže byť všetko public
15:44 – 18:36 Access modifiers v.2
18:37 – 24:20 Mini tips ohľadom enkapsulácie
24:21 – 25:09 Enkapsulácie znižuje impakt zmien
25:10 – 27:54 Loose coupling
27:55 Záver

Enkapuslácia
  • skrývanie hodnôt, stavu a funkcionality
  • zabraňuje tomu, aby používateľ objektu vedel dostať tento objekt do nevalídneho stavu
  • schovávame implementačné detaily – abstrakcia
  • Príklad auto
    • bez enkapsulácie vieme zabočiť ľavým kolesom doprava a pravým doľava – auto pokazíme
    • namiesto toho kolesá schováme pred verejnosťou (private) a spravíme verejnú metódu zaboč()
    • auto interne vie (alebo ten kto ju vytváral), že auto zabáča vždy oboma kolesami
    • používateľ nemusí vôbec vedieť ako auto zabáča, hlavne že zabáča
    • Access modifiers
      • týkajú sa propertiesov a metód
      • private – iba daná trieda vie k vlastnostiam pristupovať
      • protected – daná trieda a jej deti (triedy od nej dediace) vedia k vlastnostiam pristupovať
      • internal (C#) – public pre daný projekt (reálne assembly)
      • package private (Java) – public pre daný package – nedostupné mimo packagu
      • public – dostupné pre všetkých
      • Prečo nemôže byť všetko public
        • menenie propertiesov môže mať veľa side-effectov, ktoré viem ošetriť/zabezpečiť v setteri
        • vďaka enkapsulácii vieme spraviť read-only alebo write-only properties
        • bez settera nevieme napr. volať OnPropertyChanged() pri nastavení propertiesu
        • Mini tips
          • za každou private metódou sa schováva trieda – je to tak?
          • properties po väčšine majú byť private a ak treba, tak podľa potreby pridávame get/set
          • pri písaní nových tried/metód/propertiesov je fajn začať s najnižšími právami a postupne podľa potreby ich zvyšovať
          • Ďalej o enkapsulácii
            • zmeny kódu sú viac izolované
            • loose coupling – tým, že sa nechýtam vnútorností triedy sa znižuje previazanie kódu – neriešim dve kolesá auta, ale iba to, aby zabočilo
            • opäť treba hladať tú správnu mieru
            • enkapsulácia zjednodušuje aj testovanie
            • Užitočné odkazy

              Jakubova hra, ktorá učí základné koncepty OOP

              Stará dobrá Wiki
              OOP pre 6 ročných

              The post Ep. 20 – OOP Part 4 (Enkapsulácia) appeared first on Street of Code.

              ...more
              View all episodesView all episodes
              Download on the App Store

              Street of CodeBy Street of Code


              More shows like Street of Code

              View all
              Dobré ráno | Denný podcast denníka SME by SME.sk

              Dobré ráno | Denný podcast denníka SME

              32 Listeners

              DEEP TALKS [CZE] by Petr Ludwig

              DEEP TALKS [CZE]

              20 Listeners

              Denník N Newsfilter by Denník N

              Denník N Newsfilter

              29 Listeners

              Index by SME.sk

              Index

              7 Listeners

              Lužifčák podcast by Lužifčák

              Lužifčák podcast

              14 Listeners

              Rozhovory ZKH by SME.sk

              Rozhovory ZKH

              12 Listeners

              PETR MÁRA PODCAST by Petr Mára

              PETR MÁRA PODCAST

              7 Listeners

              Piatoček by SME.sk

              Piatoček

              10 Listeners

              Diagnóza Podnikateľ by Edita Angyalová

              Diagnóza Podnikateľ

              0 Listeners

              V redakcii by Denník N

              V redakcii

              15 Listeners

              Mozgová Atletika by Denis a Patrik Kováč

              Mozgová Atletika

              11 Listeners

              Michal Truban Podcast by Michal Truban

              Michal Truban Podcast

              2 Listeners

              Ekonómia ľudskou rečou by skpodcasty.sk

              Ekonómia ľudskou rečou

              0 Listeners

              tak bolo by ZAPO

              tak bolo

              5 Listeners

              Mentalita Foundera by ZAPO

              Mentalita Foundera

              0 Listeners