logo

OOPs | Objektorientēts dizains

Objektorientēts dizains sākās no brīža, kad tika izgudroti datori. Programmēšana bija tur, un programmēšanas pieejas parādījās attēlā. Programmēšana būtībā ir noteiktu norādījumu došana datoram.
Datortehnikas laikmeta sākumā programmēšana parasti aprobežojās ar mašīnvalodu programmēšanu. Mašīnas valoda nozīmē tās instrukciju kopas, kas ir raksturīgas konkrētai iekārtai vai procesoram un ir 0 un 1 formā. Tās ir bitu sekvences (0100110…). Bet ir diezgan grūti uzrakstīt programmu vai izstrādāt programmatūru mašīnvalodā.
Faktiski nav iespējams izstrādāt programmatūru, kas tiek izmantota mūsdienu scenārijos ar bitu sekvencēm. Tas bija galvenais iemesls, kāpēc programmētāji pārgāja uz nākamās paaudzes programmēšanas valodām, izstrādājot montāžas valodas, kas bija pietiekami tuvu angļu valodai, lai tās varētu viegli saprast. Šīs montāžas valodas tika izmantotas mikroprocesoros. Līdz ar mikroprocesora izgudrošanu montāžas valodas uzplauka un valdīja pār nozari, taču ar to nepietika. Atkal programmētāji nāca klajā ar kaut ko jaunu, t.i., strukturētu un procesuālu programmēšanu.



Strukturētā programmēšana -
Strukturētās programmēšanas pieejas pamatprincips ir sadalīt programmu funkcijās un moduļos. Moduļu un funkciju izmantošana padara programmu saprotamāku un lasāmāku. Tas palīdz rakstīt tīrāku kodu un saglabāt kontroli pār funkcijām un moduļiem. Šī pieeja piešķir nozīmi funkcijām, nevis datiem. Tas koncentrējas uz lielu programmatūras lietojumprogrammu izstrādi, piemēram, C tika izmantota mūsdienu operētājsistēmu izstrādei. Programmēšanas valodas: PASCAL (ieviesa Niklaus Wirth) un C (ieviesa Dennis Ritchie) izmanto šo pieeju.
Procedūras programmēšanas pieeja –
Šo pieeju sauc arī par lejupejošo pieeju. Šajā pieejā programma ir sadalīta funkcijās, kas veic noteiktus uzdevumus. Šo pieeju galvenokārt izmanto vidēja izmēra lietojumprogrammām. Dati ir globāli, un visas funkcijas var piekļūt globālajiem datiem. Procesuālās programmēšanas pieejas galvenais trūkums ir tas, ka dati nav aizsargāti, jo dati ir globāli un tiem var piekļūt ar jebkuru funkciju. Programmas vadības plūsma tiek panākta, izmantojot funkciju izsaukumus un goto paziņojumus. Programmēšanas valodas: FORTRAN (izstrādāja IBM) un COBOL (izstrādāja Dr. Grace Murray Hopper) izmanto šo pieeju.
Šīs programmēšanas konstrukcijas tika izstrādātas 1970. gadu beigās un 1980. gados. Joprojām bija dažas problēmas ar šīm valodām, lai gan tās atbilda labi strukturētu programmu, programmatūras uc kritērijiem. Tās nebija tik strukturētas kā prasības tajā laikā. Šķiet, ka tie ir pārāk vispārināti un nekorelē ar reāllaika lietojumprogrammām.
Lai atrisinātu šāda veida problēmas, OOP, kā risinājums tika izstrādāta objektorientēta pieeja.

Objektorientētās programmēšanas (OOP) pieeja —
OOP koncepcija būtībā tika izstrādāta, lai pārvarētu iepriekšminēto programmēšanas metodoloģiju trūkumus, kas nebija tik tuvu reālās pasaules lietojumprogrammām. Pieprasījums palielinājās, bet joprojām tika izmantotas tradicionālās metodes. Šī jaunā pieeja radīja revolūciju programmēšanas metodoloģijas jomā.
Objektorientētā programmēšana (OOP) ir nekas cits kā tas, kas ļauj rakstīt programmas, izmantojot noteiktas klases un reāllaika objektus. Mēs varam teikt, ka šī pieeja ir ļoti tuva reālajai pasaulei un tās lietojumiem, jo ​​šo klašu un objektu stāvoklis un uzvedība ir gandrīz tādi paši kā reālās pasaules objektiem.
Iedziļināsimies vispārīgajos OOP jēdzienos, kas sniegti tālāk:
Kas ir klase un objekts?
Tā ir OOP pamatkoncepcija; paplašināts C izmantotās struktūras jēdziens. Tas ir abstrakts un lietotāja definēts datu tips. Tas sastāv no vairākiem mainīgajiem lielumiem un funkcijām. Klases galvenais mērķis ir datu un informācijas glabāšana. Klases dalībnieki nosaka klases uzvedību. Klase ir objekta projekts, bet mēs varam arī teikt, ka klases īstenošana ir objekts. Klase pasaulei nav redzama, bet objekts ir.



CPP

plāns algoritms






Class car> {> >int> car_id;> >char> colour[4];> >float> engine_no;> >double> distance;> > >void> distance_travelled();> >float> petrol_used();> >char> music_player();> >void> display();> }>

>

>

Šeit klases automašīnai ir īpašības car_id, color, engine_no un distance. Tas atgādina reālās pasaules automašīnu, kurai ir tādas pašas specifikācijas, kuras var pasludināt par publisku (redzamas ikvienam ārpus klases), aizsargātas un privātas (neredzamas nevienam). Ir arī dažas metodes, piemēram, distance_travelled(), petrol_used(), music_player() un display(). Tālāk norādītajā kodā automašīna ir klase un c1 ir automašīnas objekts.

CPP




virknes formātā java
#include> using> namespace> std;> > class> car {> public>:> >int> car_id;> >double> distance;> > >void> distance_travelled();> > >void> display(>int> a,>int> b)> >{> >cout <<>'car id is= '> << a <<>' distance travelled = '> << b + 5;> >}> };> > int> main()> {> >car c1;>// Declare c1 of type car> >c1.car_id = 321;> >c1.distance = 12;> >c1.display(321, 12);> > >return> 0;> }>

>

>

Datu abstrakcija -
Abstrakcija attiecas uz darbību, kurā tiek attēlotas svarīgas un īpašas iezīmes, neiekļaujot fona informāciju vai paskaidrojumus par šo objektu. Datu abstrakcija vienkāršo datu bāzes dizainu.

java string.format
    Fiziskais līmenis:
    Tajā ir aprakstīts, kā tiek glabāti ieraksti, kas bieži tiek slēpti no lietotāja. To var aprakstīt ar frāzi, uzglabāšanas bloks.
    Loģiskais līmenis:
    Tas apraksta datubāzē saglabātos datus un attiecības starp datiem. Programmētāji parasti strādā šajā līmenī, jo viņi apzinās funkcijas, kas nepieciešamas, lai uzturētu attiecības starp datiem.
    Skata līmenis:
    Lietojumprogrammas drošības nolūkos slēpj informāciju par datu veidiem un informāciju. Šis līmenis parasti tiek ieviests ar GUI palīdzību, un tiek parādīta lietotājam paredzēta informācija.

Iekapsulēšana -
Iekapsulēšana ir viens no objektorientētās programmēšanas (OOP) pamatjēdzieniem. Tajā ir aprakstīta ideja par datu iesaiņošanu un metodes, kas darbojas ar datiem vienā vienībā, piemēram, Java klasē. Šo jēdzienu bieži izmanto, lai paslēptu objekta iekšējo stāvokļa attēlojumu no ārpuses.
Mantojums -
Mantojums ir vienas klases spēja mantot citas klases, ko sauc par vecāku klasi, iespējas vai īpašības. Rakstot klasi, mēs mantojam īpašības no citām klasēm. Tātad, veidojot klasi, mums nav jāraksta visas īpašības un funkcijas atkal un atkal, jo tās var mantot no citas klases, kurai tā pieder. Mantojums ļauj lietotājam atkārtoti izmantot kodu, kad vien iespējams, un samazināt tā dublēšanu.

Java




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >System.out.println(>'GfG!'>);> > >Dog dog =>new> Dog();> >dog.name =>'Bull dog'>;> >dog.color =>'Brown'>;> >dog.bark();> >dog.run();> > >Cat cat =>new> Cat();> >cat.name =>'Rag doll'>;> >cat.pattern =>'White and slight brownish'>;> >cat.meow();> >cat.run();> > >Animal animal =>new> Animal();> > >animal.name =>'My favourite pets'>;> > >animal.run();> >}> }> > class> Animal {> >String name;> >public> void> run()> >{> > >System.out.println(>'Animal is running!'>);> >}> }> > class> Dog>extends> Animal {> > /// the class dog is the child and animal is the parent> > >String color;> >public> void> bark()> >{> >System.out.println(name +>' Wooh ! Wooh !'> >+>'I am of colour '> + color);> >}> }> > class> Cat>extends> Animal {> > >String pattern;> > >public> void> meow()> >{> >System.out.println(name +>' Meow ! Meow !'> >+>'I am of colour '> + pattern);> >}> }>

>

>

C++


treknraksts css



#include> #include> using> namespace> std;> > class> Animal {> public>:> >string name;> >void> run(){> >cout<<>'Animal is running!'>< } }; class Dog : public Animal { /// the class dog is the child and animal is the parent public: string color; void bark(){ cout<' Wooh ! Wooh !' <<'I am of colour '< } }; class Cat : public Animal { public: string pattern; void meow(){ cout<' Meow ! Meow !'<<'I am of colour '< } }; int main(){ cout<<'GFG'< Dog dog; dog.name = 'Bull dog'; dog.color = 'Brown'; dog.bark(); dog.run(); Cat cat; cat.name = 'Rag doll'; cat.pattern = 'White and slight brownish'; cat.meow(); cat.run(); Animal animal; animal.name = 'My favourite pets'; animal.run(); return 0; //code contributed by Sanket Gode. }>

>

>

Izvade

GfG! Bull dog Wooh ! Wooh !I am of colour Brown Animal is running! Rag doll Meow ! Meow !I am of colour White and slight brownish Animal is running! Animal is running!>

Polimorfisms -
Polimorfisms ir datu iespēja apstrādāt vairāk nekā vienā formā. Tas ļauj veikt vienu un to pašu uzdevumu dažādos veidos. Tas sastāv no metodes pārslodzes un metodes ignorēšanas, t.i., metodes rakstīšana vienreiz un vairāku uzdevumu izpilde, izmantojot vienu un to pašu metodes nosaukumu.

CPP


pārvērst virkni par veselu skaitli



#include> using> namespace> std;> > void> output(>float>);> void> output(>int>);> void> output(>int>,>float>);> > int> main()> {> >cout <<>' GfG! '>;> >int> a = 23;> >float> b = 2.3;> > >output(a);> >output(b);> >output(a, b);> > >return> 0;> }> > void> output(>int> var)> {>// same function name but different task> >cout <<>'Integer number: '> << var << endl;> }> > void> output(>float> var)> {>// same function name but different task> >cout <<>'Float number: '> << var << endl;> }> > void> output(>int> var1,>float> var2)> {>// same function name but different task> >cout <<>'Integer number: '> << var1;> >cout <<>' and float number:'> << var2;> }>

>

>

Daži svarīgi punkti, kas jāzina par OOP:

  1. OOP datus uzskata par kritisku elementu.
  2. Uzsvars tiek likts uz datiem, nevis uz procedūru.
  3. Problēmas sadalīšana vienkāršākos moduļos.
  4. Neļauj datiem brīvi plūst visā sistēmā, ti, lokalizētai vadības plūsmai.
  5. Dati ir aizsargāti no ārējām funkcijām.

OOP priekšrocības -

  • Tas ļoti labi modelē reālo pasauli.
  • Izmantojot OOP, programmas ir viegli saprast un uzturēt.
  • OOP piedāvā koda atkārtotu izmantošanu. Jau izveidotās nodarbības var izmantot atkārtoti, nerakstot tās vēlreiz.
  • OOP veicina ātru programmu izstrādi, kur iespējama paralēla nodarbību attīstība.
  • Izmantojot OOP, programmas ir vieglāk pārbaudīt, pārvaldīt un atkļūdot.

OOP trūkumi -

  • Izmantojot OOP, nodarbības dažreiz mēdz būt pārāk vispārinātas.
  • Attiecības starp klasēm dažkārt kļūst virspusējas.
  • OOP dizains ir sarežģīts un prasa atbilstošas ​​zināšanas. Tāpat ir jāveic pareiza OOP programmēšanas plānošana un projektēšana.
  • Lai programmētu ar OOP, programmētājam ir vajadzīgas atbilstošas ​​prasmes, piemēram, projektēšana, programmēšana un domāšana par objektiem un klasēm utt.