Mantojums pret konteineru
Mantojums un konteiners ir divi svarīgi jēdzieni, kas atrodami OOP (Objektorientētas programmēšanas piemērs: C ++). Vienkārši izsakoties, gan konteinerizēšana, gan mantojums attiecas uz klases papildu īpašību vai izturēšanās nodrošināšanu. Mantojums ir klases spēja mantot īpašības un izturēšanos no vecāku klases, pagarinot to. No otras puses, Containership ir klases spēja kā dalībnieku datus saturēt dažādu klašu objektus.
Kas ir mantojums?
Kā minēts iepriekš, mantojums ir klases spēja mantot īpašības un izturēšanos no vecāku klases, pagarinot to. Mantojums būtībā nodrošina koda atkārtotu izmantošanu, ļaujot paplašināt esošās klases īpašības un izturēšanos ar nesen definētu klasi. Ja A klase paplašina B, tad B klasi sauc par vecāku klasi (vai superklases) un A klasi sauc par bērnu klasi (vai atvasinātu klasi / apakšklasi). Šajā scenārija A klasē tiks mantoti visi superklases (B) publiskie un aizsargājamie atribūti un metodes. Apakšklase pēc izvēles var ignorēt (nodrošināt metodēm jaunu vai paplašinātu funkcionalitāti) no vecāku klases mantoto izturēšanos. Mantojums OOP nozīmē “ir-ir” attiecības. Tas būtībā nozīmē, ka A ir arī B. Citiem vārdiem sakot, B var būt klase ar vispārīgu noteiktas reālās pasaules vienības aprakstu, bet A norāda noteiktu specializāciju. Reālās pasaules programmēšanas problēmā Personu klasi varētu paplašināt, lai izveidotu Darbinieku klasi. To sauc par specializāciju. Bet jūs vispirms varētu arī izveidot nodarbību klasi Darbinieki un pēc tam to vispārināt arī personāla klasē (t.i., vispārināt). Šajā piemērā Darbiniekam būs visas Personas īpašības un izturēšanās (t.i., Darbinieks ir arī Persona), un tajā var būt arī dažas papildu funkcijas (tātad, Persona nav Darbinieks), kā arī.
Kas ir konteiners??
Konteineris ir klases spēja kā dalībnieku datus saturēt dažādu klašu objektus. Piemēram, A klasē kā biedrs varētu būt B klases objekts. Šeit visas B kategorijas definētās publiskās metodes (vai funkcijas) var izpildīt A klasē. A klase kļūst par konteineru, savukārt B klase kļūst par ierobežoto klasi. Konteinerus dēvē arī par kompozīciju. Šajā piemērā var teikt, ka A klase sastāv no B klases. OOP gadījumā konteineru veidošana nozīmē “ir-ir” attiecības. Ir svarīgi atzīmēt, ka, pat ja konteineram ir pieeja visu ietvertās klases publisko metožu izpildei, tas nespēj mainīt vai nodrošināt papildu funkcionalitāti. Runājot par reālās pasaules programmēšanas problēmu, klases TextBox objekts var būt ietverts klases formā, un tādējādi var teikt, ka veidlapā ir TextBox (vai alternatīvi, veidlapu veido TextBox).
Atšķirība starp mantojumu un konteineriem
Lai gan mantojums un konteiners ir divi OOP jēdzieni, tie diezgan atšķiras no tā, ko tie ļauj sasniegt programmētājam. Mantojums ir klases spēja mantot īpašības un izturēšanos no vecāku klases, pagarinot to, savukārt Containership ir klases spēja kā dalībnieku datus ietvert dažādu klašu objektus. Ja klase tiek pagarināta, tā pārmanto visas publiskās un aizsargājamās īpašības / izturēšanos, un šo uzvedību apakšklase var ignorēt. Bet, ja klase ir ietverta citā, konteiners nesaņem iespēju mainīt vai pievienot izturēšanos tajā. Mantojums OOP nozīmē “ir-ir” attiecības, bet konteineru konference - “ir-ir” attiecības.