Programiranje

Raziskovanje posploševanja, specializacije in odvisnosti v OOP

OOP (objektno usmerjeno programiranje) je paradigma, ki je osredotočena na predmete in podatke in ne na dejanja in logiko. Pri delu z OOP morate nujno prepoznati predmete in njihove odnose.

V OOP se težava razgradi na številne predmete in njihov medsebojni odnos - postopek, znan kot modeliranje podatkov. Bistveni odnosi med predmeti vključujejo: povezovanje, posploševanje, specializacijo, združevanje, odvisnost in sestavo. V tem članku bomo za ponazoritev konceptov razpravljali o odnosih odvisnosti in dedovanja v OOP s primeri kod v C #.

Odvisnost

Odvisnost je razmerje med dvema ali več predmeti, v katerem je objekt odvisen od drugega predmeta ali predmetov za njegovo izvedbo. Če se eden od teh predmetov spremeni, lahko to vpliva na druge predmete. Razmerje odvisnosti med dvema ali več predmeti je v UML prikazano s črtkanimi puščicami. Z drugimi besedami, kadar obstaja razmerje odvisnosti med dvema ali več predmeti, mora objekt vedeti o drugih objektih, od katerih je odvisen.

Razmislite o predavanjih BlogEntry in View. Medtem ko prvi vsebuje vse povezane informacije, povezane z vnosi v spletni dnevnik, se drugi ukvarja s prikazom podatkov, prejetih iz razreda BlogEntry, v uporabniški vmesnik. Torej je razred View odvisen od razreda BlogEntry za prikaz vsebine (vnosov v spletni dnevnik) v uporabniškem vmesniku. Zato obstaja razmerje odvisnosti med razredima View in BlogEntry. Odnos odvisnosti je v UML predstavljen s črtkano puščico.

javni razred BlogEntry

    {

// Člani razreda BlogEntry

    }

javni razred Pogled

    {

// Člani razreda View

    }

Posploševanje in specializacija

Posploševanje je mogoče opredeliti kot tehniko pridobivanja bistvenih značilnosti (med njimi so atributi, lastnosti in metode) iz dveh ali več podrazredov in nato kombiniranje znotraj splošnega osnovnega razreda (imenovanega tudi superrazred). Nasprotno, specializacija je obratna od posploševanja - uporablja se za predstavitev razmerja »vrsta« z ustvarjanjem podrazredov iz obstoječih osnovnih razredov.

Dedovanje je opredeljeno kot sposobnost razreda, da razširi enega ali več razredov (znanih tudi kot osnovni razredi). Upoštevajte, da je posploševanje najmočnejša oblika razrednih odnosov, saj so razredi, ki sodelujejo v generalizacijskem odnosu, tesno povezani - večina notranjih zapletenosti nadrejenega razreda je vidna otrokovemu razredu.

Razred, ki razširja osnovni ali nadrejeni razred, je znan tudi kot podrejeni razred ali izpeljani razred. Podedovani ali posplošeni razred razširi ali podeduje svoj osnovni ali nadrejeni razred. Pri dedovanju podrejeni razred podeduje metode in atribute osnovnega ali nadrejenega razreda, razen tistih, ki so zasebni. V bistvu zasebni člani osnovnega razreda niso podedovani, saj pripadajo "izključno" razredu, katerega del so. Zato bi morali posploševanje izkoristiti le, če morate zastopati razred, ki je pravzaprav bolj specializirana oblika drugega razreda.

Dedovanje je naslednjih vrst:

  • Samski
  • Večkraten
  • Na več ravneh
  • Hierarhično
  • Hibridna

Eno dedovanje je najpreprostejša oblika dedovanja, pri kateri en razred razširi drug razred. Naslednji delček kode ponazarja to obliko dedovanja - upoštevajte, kako razred BlogAuthor razširja razred avtorja.

javni razred Avtor

    {

// Člani avtorskega razreda

    }

javni razred BlogAuthor: avtor

    {

// Člani razreda BlogAuthor

    }

Pri večkratnem dedovanju imate več osnovnih razredov, iz katerih izhaja razred. Upoštevajte, da večkratno dedovanje ni podprto v programskih jezikih OOP, kot sta Java ali C #.

Naslednja vrsta dedovanja na našem seznamu je večstopenjsko dedovanje. V tej obliki dedovanja imate med seboj podedovane razrede, ki tvorijo verigo. Naslednji delček kode to ponazarja.

javni razred Oseba

    {

// Člani razreda Person

    }

javni razred Avtor: Oseba

    {

// Člani avtorskega razreda

    }

javni razred BlogAuthor: avtor

    {

// Člani razreda BlogAuthor

    }

V hierarhičnem dedovanju imate razrede, ki predstavljajo hierarhično strukturo z dedovanjem, podobno kot v družinskem drevesu. Pri tej vrsti dedovanja imate več kot en podrejeni razred z istim osnovnim ali nadrejenim razredom. Z drugimi besedami, to je vrsta dedovanja, pri katerem ima eden ali več izpeljanih razredov skupni osnovni ali nadrejeni razred.

Hibridno dedovanje je vrsta dedovanja, pri kateri sta dve ali več oblik dedovanja združeni v eno. V bistvu je ta vrsta dedovanja kombinacija dveh ali več oblik dedovanja, da se tvori zaprta struktura. Hibridno dedovanje tudi ni podprto v programskih jezikih OO, kot sta C # ali Java.

$config[zx-auto] not found$config[zx-overlay] not found