Objektorientēta programmēšana: sarežģītu koncepciju vienkāršošana

Atklāšana: Jūsu atbalsts palīdz vietnei darboties! Mēs nopelnām nodošanas maksu par dažiem pakalpojumiem, kurus mēs iesakām šajā lapā.


Objektorientētā (OO) programmēšana ir programmēšanas paradigma, kas ietver vai balstās uz objektu jēdzienu, iekapsulētām datu struktūrām, kurām ir īpašības un funkcijas un kuras mijiedarbojas ar citiem objektiem.

Programmas objekti bieži attēlo reālās pasaules objektus – piemēram, e-komercijas vietnes lietojumprogrammā var būt klienta objekti, Shopping_cart objekti un Produktu objekti. Citi objekti var būt vāji saistīti ar reālās pasaules ekvivalentiem, piemēram, Payment_processor vai Login_form. Daudzi citi objekti kalpo lietojumprogrammu loģikai, un tiem nav tiešas reālās pasaules paralēles – objekti, kas pārvalda autentifikāciju, veidņu izveidi, pieprasījuma apstrādi vai jebkuru citu no neskaitāmajām funkcijām, kas vajadzīgas darbīgai programmai..

Objektorientēta programmēšana

Objektorientētās programmēšanas vēsture

Ja šķiet, ka objektorientētā programmēšana ir īpaši piemērota reālās pasaules sistēmu modelēšanai, tā nav nejaušība. Jēdzieni, kas tagad saistīti ar objektu orientētu programmēšanu, ieskaitot lielāko daļu valodas, lai to aprakstītu, radās no Simula programmēšanas valodas, kuru izmantoja reālās pasaules sistēmu simulēšanai. Klases, apakšklases un objekti tika pievienoti Simulai 1967. gadā.

Septiņdesmitajos gados Alans Kajs izstrādāja terminu “uz objektu orientēts”, strādājot pie Smalltalk. Tas attiecās uz objektu plašo izmantošanu valodā un to vietu kā organizācijas pamatvienību.

Objektorientētās programmēšanas izplatība sākumā bija samērā lēna. Kopējā Lisp 70. gadu beigās ieviesa kopējo Lisp objektu sistēmu, pievienojot objektus Lisp. Astoņdesmitajos gados tika izgudrota Eifeļa programmēšanas valoda, kas bija pilnībā orientēta uz objektu. Eifeļa izgudrotājs Bertrands Meijers uzrakstīja objektorientētu programmatūras konstruēšanu, kas bija viena no pirmajām grāmatām, kas plaši izplatīja OO programmēšanas koncepcijas..

Deviņdesmitajos un divdesmitajos gados objektorientētā programmēšana patiešām sākās. Tas sakrita ar plašu sprādzienu tehnoloģiju nozarē kopumā šajā laika posmā un pēkšņu programmētāju pieplūdumu lielos tehnoloģiju uzņēmumos. Viens no objektorientētās programmēšanas pārdošanas punktiem, ko atbalsta tās aizstāvji, ir tas, ka problēmu atdalīšana un vaļējā apvienošana (skatīt zemāk) komandām ļauj efektīvāk strādāt pie lielām sistēmām..

Līdz 21. gadsimta pirmās desmitgades beigām uz objektu orientētā programmēšana lielākoties bija kļuvusi par pieņemto “vienu pareizo ceļu” programmatūras izstrādei. Jaunākas programmēšanas valodas, it īpaši dinamiski drukātas valodas, piemēram, Python, Ruby un JavaScript, mēdz pieņemt vai pat ieviest uz objektu orientētu pieeju. Tikmēr daudzām vecākām valodām, piemēram, Fortran un COBOL, ir pievienotas objektorientētas funkcijas.

Svarīgi uz objektu orientēti jēdzieni

Objektorientētā programmēšana ir jēdziens – veids, kā pievērsties datorprogrammas projektēšanas problēmai. Tas nav grūti un ātrs noteikumu kopums vai īpaša metodika. Dažādas programmēšanas valodas OOP pieeja ir atšķirīga. Daži ir vairāk vai mazāk stingri, un citi ir vienkārši atšķirīgi. Tālāk ir sniegts vispārīgs pārskats par objektorientētām dizaina koncepcijām. Skatiet mūsu māsas rakstu Objektorientētā programmēšana, lai iegūtu resursus un informāciju, kas izskaidro, kā šīs koncepcijas tiek ieviestas daudzās dažādās valodās.

Bažu nodalīšana

Centrālais pamatprincips, kas informē visus pārējos jēdzienus objektorientētā programmēšanā, ir problēmu nodalīšana. Šī ir ideja, ka loģiski atšķirīgi datu un funkcionalitātes saišķi būtu jānodala atšķirīgos lietojumprogrammu koda komplektos.

Šī ideja nav raksturīga tikai objektorientētai programmēšanai. Lielākā daļa programmēšanas valodu ļauj nodalīt problēmas, un vairums programmēšanas paradigmu to veicina. Tomēr objektu orientētai programmēšanai ir īpaša nozīme bažu nodalīšanā. Gandrīz visu pārējo OO koncepciju pamatā ir spēcīga problēmu atdalīšana.

Objekti un klases

Sākumā šķiet, ka objektorientētās programmēšanas pamatkoncepcija ir objekti. Savā ziņā tā ir taisnība. Bet no izstrādātāja viedokļa galvenā problēma ir klases.

Klase definē objektu; objekts atdala klasi. Piemēram, domāsim par e-komercijas vietni. Klientu ir daudz, bet viņi visi dara to pašu. Tātad būtu Klientu klase, kurā programmētājs definētu, kas ir klients un kā tas darbojas. Pēc tam katru atsevišķu klientu sistēmā attēlo klienta objekts.

Tā kā klašu definīcijās ir norādīta visa ieviešanas detaļa, objektorientētās programmas izstrādes darbs ir saistīts ar darbu ar klasēm, nevis objektiem.

Klasiskās un neklasiskās OO valodas

Ir dažas valodas, kurās ir iekļauts liels skaits uz objektu orientētu jēdzienu, bet kurās nav konstrukcijas, ko īpaši sauc par klasi. Visievērojamākais ir JavaScript, kurā tiek izmantoti prototipi, vai vispārīgi objekti, kas pēc tam tiek klonēti. Terminoloģija, pamatā esošā filozofija un pat “zem pārsega” ieviešana ir atšķirīga – un tomēr izstrādātāja pieredze lielākoties ir tāda pati.

Valodas ar klasēm, kuras pārstāv lielāko daļu OO valodu, dažreiz sauc par “klasiskajām”. Tas ir gan vārds vārdam “klase”, gan apliecinājums, ka klases ir kļuvušas par parasto pieeju objektu orientētai programmēšanai.

Metodes un īpašības

Objektam ir mainīgie, kurus lielākajā daļā valodu parasti sauc par īpašībām vai atribūtiem. Piemēram, klienta objektam var būt tādas īpašības kā ship_address vai name.

Objektiem ir arī funkcijas, ko sauc par metodēm. Tās ir lietas, kuras objekts ir spējīgs darīt, un tās ir definētas arī klases ietvaros. Piemēram, klienta objektā var būt izrakstīšanās, mainīšanas_sūtīšanas_adreses vai izrakstīšanās metodes.

Viens no labu uz objektu orientētu programmu izstrādes izaicinājumiem ir noteikt, kā sadalīt funkcijas starp vairākām potenciālajām klasēm. Piemēram, vai norēķinu metodei vajadzētu piederēt klientam vai iepirkumu grozam? Vai klientam pieder atteikšanās metode, vai klients izsauc atteikšanās metodi kādam objektam Authentication_manager?

Vēl viens izaicinājums daudziem jauniem OO programmētājiem ir izpratne par to, kā veidot klases, kas neatspoguļo reālās lietas. Izpratne par to, ka e-komercijai ir nepieciešami produkti un projektu vadības sistēma, ir diezgan vienkārša. Bet lielām uz objektu orientētām programmām ir neskaitāmas klases, kas definē visa veida abstraktus funkcionalitātes saišķus, piemēram, objektu relāciju kartētājus, objektu rūpnīcas un kontrolierus (lai nosauktu trīs viegli saprotamus piemērus)..

Protams, navigācija šajās problēmās. Objektorientētam izstrādātājam var palīdzēt arī izpratne par dizaina modeļiem un attīstības process, kas ietver modelēšanu.

Šeit ir daži resursi, kas palīdzēs jums labāk izprast klasi, rekvizītus un metodes:

  • Klases, objekti, rekvizīti un metožu koncepcijas ir lielisks 10 minūšu video pārskats par šiem jēdzieniem;
  • Izvēle starp īpašībām un metodēm ir .NET apmācība, kurā apskatīti daži dizaina apsvērumi, kas piemērojami jebkurai valodai;
  • Izpratne par klasēm, metodēm un īpašībām C # satur labu skaidrojumu ar dažām noderīgām diagrammām.

Ziņu nodošana un dinamiska nosūtīšana

Klases un virkne citu šeit aplūkoto jēdzienu ir nedalāmi saistīti ar objektu orientētu programmēšanu. Tomēr saskaņā ar datorzinātnieku, kurš izgudroja terminu, objektorientētā programmēšana ir par ziņojuma nodošanu.

Ziņu nodošana nozīmē, ka objekti sazinās savā starpā, nosūtot ziņas. Tas izklausās triviāli, bet tas ietekmē funkciju izsaukumu veikšanu. Tā vietā, lai viens objekts tieši izsauktu cita objekta funkcijas, objekts nodod ziņojumu citam objektam. Ziņojums satur metodes nosaukumu un visus saistītos parametrus. Tad izsauktajam objektam ir iespēja rīkoties ar šo metodi, tomēr ir nepieciešams izsaukums.

Šī katra objekta spēja pēc vajadzības noteikt savu reakciju uz metodes izsaukumiem tiek saukta par dinamisko nosūtīšanu. Tas ļauj objektiem laika gaitā attīstīties un reaģēt uz ziņojumiem atbilstoši to pašreizējam stāvoklim.

Ziņu nodošana var būt nedaudz mulsinoša, jo īpaši tāpēc, ka lielākajā daļā mūsdienās izmantoto valodu tiek ieviests tikai viens konkrētais veids (metodes izsaukums). Šeit ir daži resursi, kas palīdzēs jums to labāk izprast:

  • Kāds vaicāja, kas ir ziņojuma nodošana OO? vietnē StackExchange; sekoja dažas ļoti noderīgas atbildes;
  • Skatiet arī Kādas ir galvenās atšķirības starp OO Smalltalk un Java? neliels ieskats par to, kā ziņu nodošana ir mainījusies no sākotnējās idejas uz to, kā tā galvenokārt darbojas mūsdienu valodās;
  • Ziņojumam, nododot c2 wiki, ir sīks, kaut nedaudz haotisks skaidrojums.

Iekapsulēšana

Kapsulēšanas jēdziens ir cieši saistīts ar ziņojumu nodošanu un dinamisku nosūtīšanu. Iekapsulēšana nozīmē, ka kods ārpus objekta nevar tieši piekļūt tā iekšējiem datiem. Ja, piemēram, vienam objektam ir “jāzina” cita objekta īpašums (piemēram, Shipping_manager var būt nepieciešama klienta objekta ship_address), tad izsaucējam objektam šie dati nav atrodami tieši; tai ir jānodod ziņojums, “lūdzot” klienta objektu, kurš pēc tam atgriež nepieciešamos datus. (To parasti veic ar metodes izsaukumu.)

Ne visas uz objektu orientētās valodas stingri iekapsulējas; daži ļauj tieši piekļūt objekta īpašumiem (iegūt un iestatīt). Tomēr daudzi OO attīstības eksperti mudina programmētājus ievērot iekapsulēšanas principus (tieši neaicinot īpašumus), pat valodās, kas to ļauj.

Iekapsulēšanai ir daudz priekšrocību. Pirmkārt, tas ļauj iegūt jebkādu informāciju vai blakusparādības no vietas, kur tiek saukts īpašums. Piemēram, katru reizi, kad tiek lasīta kāda noteikta vērtība, jūs varētu vēlēties pārbaudīt, kad tā pēdējo reizi tika aprēķināta, un pārrēķināt to, ja ir izpildīti noteikti nosacījumi. Iespēja iekapsulēties dod iespēju jebkurā laikā pievienot, noņemt vai mainīt šo loģiku vienā vietā, neietekmējot nevienu citu koda vietu, kas veic zvanu..

Mantojums un sastāvs

Mantojums un kompozīcija ir divi veidi, kā dažādas klases (un to tūlītējie objekti) ir savstarpēji saistītas.

Mantojums raksturo “ir” attiecības: lietotājs ir persona; Klients ir Lietotājs. Šajā piemērā varētu būt Personu klase, kas definē visas personu īpašības un metodes kopumā (vārds, dzimšanas diena). Pēc tam lietotāju klase paplašinātu personu kategoriju, lai pievienotu tādas lietas kā lietotājvārda atribūts vai pieteikšanās un atteikšanās metodes. Pēc tam klientu klase var paplašināt lietotāju, pievienojot lietas, kas ir vajadzīgas tikai klientam, piemēram, order_history vai billing_address.

Kompozīcija apraksta “ir” attiecības, kad vienam objektam “pieder” cits objekts. Piemēram, Klientu klasei var piederēt Billing_address, kas pats par sevi ir klasē definēts pilnvērtīgs objekts. Tāpat kā mantojuma hierarhija, arī kompozīcijas hierarhija var viegli būt vairākos slāņos. Piemēram, klientam var būt Shopping_cart, Shopping_cart ir vairāki produkti, katram Produktam ir pārdevējs utt..

Liela daļa projektēšanas darbu objektorientētā izstrādē ir saistīta ar šo mantojuma un kompozīcijas attiecību kartēšanu. Klases diagramma, kas ir vienotās modelēšanas valodas sastāvdaļa, ir nenovērtējams rīks šo attiecību vizualizēšanai.

  • Mantojums pret kompozīciju: kuru izvēlēties? veidojot konsoles klases hierarhiju, iedziļinās dažos dizaina apsvērumos;
  • Sastāvs vs mantojums: kā izvēlēties? aptver to pašu jautājumu, bet no cita skatu punkta un ar lielāku humoru;
  • Java dizains: objekti, UML un process, ko izstrādājis Kirks Knoernschilds, pirmajā nodaļā iekļauj sadaļu “Kompozītas atkārtotas izmantošanas princips”, kas izskaidro, kāpēc sastāvs dažreiz ir labāks, pat ja mantojums šķiet pareizs.

Polimorfisms

Polimorfisms (vai precīzāk – apakštipa polimorfisms) ir jēdziens, kas dabiski rodas no mantojuma. Ja vecāku klasei (vai “superklasei”) ir kāda īpaša metode, tad šī metode tiks izmantota arī visiem tās bērniem (“apakšklases”). Katra apakšklase metodi var ieviest atšķirīgi, taču izsaucošajiem objektiem nav jāzina, kuru no vairākiem apakštipiem viņi izsauc. Viņi var izturēties pret visiem dažādiem objektu apakštipiem kā līdzvērtīgi.

Polimorfisms ir liels temats, un tas nav bez strīdiem. Šeit ir daži resursi, kas palīdzēs apņemt galvu ap to:

  • Polimorfisms Java valodā – metodes pārslodze un ignorēšana ir maigs ievads polimorfismā;
  • Uz objektu orientētas programmēšanas koncepcijas: polimorfisms un saskarnes ir īpaši domātas par ActionScript, taču tas sniedz daudz detaļu par tēmu, ieskaitot dažādas problēmas un ierobežojumus;
  • Polimorfisms – objektu orientēta programmēšana C ++ ir jauks video skaidrojums;
  • Liskova aizstāšanas princips (PDF) ir prezentācija, kas palīdzēs jums saprast apakštipi.

Uzziniet vairāk par objektu orientētu programmēšanu

Lai dziļi izprastu objektu orientētu programmēšanu, vairākas klasiskas un mūsdienu grāmatas par šo tēmu ir nenovērtējamas, un to diez vai var aizstāt ar tiešsaistes apmācībām.

  • Dizaina shēmas: Atkārtoti izmantojamas, uz objektu orientētas programmatūras elementi, autors Gamma, et al., Ir klasiskā grāmata, kas galvenajiem izstrādātājiem iepazīstināja ar objektu orientētu programmu; tas joprojām ir obligāti jāizlasa;
  • Objekta orientēta analīze un dizains ar lietojumprogrammām, ko izstrādājis Booch, et al., Pārsniedz OO koda rakstīšanu un nonāk OOP kustības gaļā, kas ir sistēmu analīze un projektēšana;
  • Metjū Veisfelda objektorientētais domāšanas process ir laba grāmata izstrādātājiem, kuri ir prasmīgi procedurālā vai funkcionālā programmēšanā un kuriem jāpārkvalificē savu domāšanu pret objektiem un klasēm;
  • Keogh un Giannini, OOP Demystified, piedāvā apmācību par OOP reālās pasaules lietotņu izstrādes kontekstā, koncentrējoties uz prasmēm un domāšanu, kas nepieciešama objektorientētas analīzes un projektēšanas procesa piemērošanai;
  • Bertranda Meijera objektorientētā programmatūras konstruēšana ir klasiska grāmata par OO, viena no pirmajām, kas iepazīstina ar koncepciju pamatā esošo tehniku ​​un filozofiju; daži no šīs grāmatas materiāliem var šķist datēti, taču pamati joprojām ir svarīgi;
  • Izskaidroti dizaina paraugi: Shalloway un Trott ir jauna uz objektu orientēta dizaina perspektīva ir vissvarīgākā grāmata, kas veicina dizaina paraugu vai atkārtoti lietojamu stratēģiju atkārtotu problēmu risināšanu;
  • Objektu modeļi: Stratēģijas, shēmas un lietojumprogrammas, ko izstrādājuši Coad, North un Mayfield, ir labs kompanjons izskaidrotajiem dizaina modeļiem, nodrošinot daudzus papildu modeļus un stratēģijas objektorientētai programmēšanai..

Lai iegūtu praktiskāku un mūsdienīgāku izpratni par objektu orientētas programmēšanas koncepcijām, izmēģiniet vienu vai vairākus no šiem tiešsaistes resursiem:

  • Ātri iemācīta uz objektu orientēta programmēšana ir uz Python balstīta apmācība no Mozilla izstrādātāju tīkla;
  • Objektorientētās programmēšanas koncepcijas ir Oracle apmācība, kas no objektīva orientētas programmēšanas pamatiem aplūko no Java viedokļa;
  • Objektorientētā programmēšanas apmācība sniedz valodas agnostisku ievads pamatjēdzieniem;
  • Ievads objektorientētās programmēšanas koncepcijās un vairāk ir lielisks pārskats par objektu orientētu programmēšanu, kā arī vairāki cieši saistīti priekšmeti, piemēram, programmatūras arhitektūra un dizaina paraugi;
  • Pārskats par objektorientētu programmēšanu no Codecademy, izmantojot JavaScript un pārlūkā iebūvētu redaktoru, ļauj jums nekavējoties strādāt ar koncepcijām (taču atcerieties, ka JavaScript OOP koncepcijas ievieš nedaudz savādāk);
  • Objektorientētās programmēšanas pamati ir vēl viens Java resurss, kurā ir daudz noderīgu piemēru ar reālām klasēm.

Svarīgas uz objektu orientētas valodas

Ne visas programmēšanas valodas atbalsta uz objektu orientētu programmēšanu. Dažas valodas ir veidotas tā, lai neko nedarītu, bet atbalstītu OOP. Citi pieļauj dažādas pieejas programmēšanai. Vēl citi, šķiet, ir orientēti uz objektu, bet objekta orientācijas koncepcijas īsteno nestandarta, nepilnīga vai vienkārši neparasta veidā.

Zemāk ir saraksts ar dažām no populārākajām valodām, kurās iespējams izmantot OO, ar piezīmēm par to pieeju objekta orientācijai un dažus resursus, kas palīdzēs jums iekļūt OOP ar šo valodu.

Internets ir piepildīts ar esejām, kurās apskatīta valoda X salīdzinājumā ar valodu Y – vairums no tām tikai skrāpē virsmu. Mēs iesakām jums pārbaudīt šo vispārīgāko programmēšanas valodas salīdzinājumu. Šajā pārdomātajā analīzē aplūkota specifiska informācija par vairākām populārām OO valodām, apspriežot to, kā katrā OO tiek ieviestas īpašas OO koncepcijas.

C bāzes valodas

C nav uz objektu orientēta valoda. Tomēr tajā vismaz ir iespējams ierakstīt OO kodu:

  • Objektorientēta programmēšana ar ANSI-C (PDF)
  • Phil’s Guide to Object-Oriented ANSI C
  • Objektorientēta programmēšana C.

Neviena no metodēm, kas aprakstīta šajās grāmatās un rakstos, nav īpaši stabila vai viegli izmantojama programmās, kas nav nieki. Tā vietā, lai mēģinātu izstiept C līdz robežai, ir trīs tiešie C pēcnācēji, kas ietver uz objektu orientētus valodas rīkus.

C++

C ++ ir daudzparadigma, kas nozīmē, ka tā atbalsta vairākas dažādas programmēšanas metodes (PDF), ieskaitot objektu orientāciju. Tā pamatā ir C, un tā ir īpaši izstrādāta kā veids, kā pievienot atbalstu OOP klases koncepcijai.

  • Objektorientētā programmēšana (OOP) C ++: lielisks datorzinātņu profesora ievads
  • Mācīšanās uz objektu orientētu programmēšanu C ++: liela, daudzdaļīga apmācība par OOP
  • C ++ apmācība 20-1 – klases un uz objektiem orientēta programmēšana: daļa no lielākas video sērijas par C ++, šī sesija sāk OOP koncepciju atspoguļojumu
  • Ievads objektorientētā programmēšanā, izmantojot C++
  • Objektorientētā programmēšana C++.

C #

C # (“C ass”) ir vēl viens C atvasinājums, kas galvenokārt paredzēts kā C ++ uzlabojums lietošanai Microsoft .NET Framework.

  • Objektorientēta programmēšana C #
  • C # Objektorientēta programmēšanas pamata attīstība (video)
  • C # OOPS koncepcijas (video)
  • Objektorientēti programmēšanas pamati C #: premium apmācība no PLuralsight (pieejama bezmaksas izmēģinājuma versija)
  • Ievads objektorientētās programmēšanas koncepcijās C ​​#: aptver abstrahēšanu, iekapsulēšanu, mantojumu un polimorfismu C #
  • Top 10 OOPS koncepcijas C # .NET ar piemēriem: lielisks ātrs ceļvedis, kā orientēties C #, ja jūs jau saprotat OOP koncepcijas
  • C # apguve: Kā apgūt uz objektu orientētu programmēšanas valodu: augsta līmeņa pārskats par to, kā vislabāk pievērsties C # un OOP apguvei
  • Sākums C # Objektorientēta programmēšana.

Mērķis-C

Objective-C tika izstrādāts apmēram tajā pašā laikā kā C ++, būtībā ar to pašu mērķi – OOP iespēju pievienošanu C. Mūsdienās Objective-C patiešām tiek izmantots tikai Apple kakao izstrādes platformā OS X un iOS un GNUstep, tā Atvērtā koda alternatīva.

  • Objektorientēta programmēšana ar Objective-C
  • Ievads uz objektu orientētā dizainā
  • Objektorientētā programmēšana un Objective-C valoda (PDF)
  • Ievads uz objektu orientētu programmēšanu.

Kopējā Lisp

Lisps nebūt nav orientēts uz objektu. Tomēr Common Lisp, viens no populārākajiem Lisp dialektiem, ietver Common Lisp Object System (CLOS), kas nodrošina OOP funkcijas.

Pieeja objekta orientācijai, kas ieviesta CLOS, ir radikāli atšķirīga no tā, kā OO apstrādā citās valodās. Tas nozīmē, ka CLOS nav lieliska vieta, kur sākt, ja vēlaties vispār mācīties OO vai lietot OO cita veida valodās. Tomēr, ja jūs iekļūstat Lispē, CLOS ir ļoti svarīga. Turklāt, ja OOP šķiet īpaši intriģējošs, jums patiks studēt CLOS, lai redzētu OO koncepcijas citā gaismā.

  • CLOS pamati
  • Īss ceļvedis CLOS
  • Kopējā Lisp objektu sistēma: pārskats (PDF)
  • CLOS: Integrēta uz objektu orientēta un funkcionāla programmēšana (PDF)
  • Objektorientēta programmēšana KOPĒJĀ LISP: Programmētāja ceļvedis CLOS.

Erlangs

Saskaņā ar dažiem parastajiem viedokļiem Erlangs nav uz objektu orientēta valoda. Tomēr ir aizraujošs mazākumtautības viedoklis, kas liecina par pretējo, un tā atbalstītāji apgalvo, ka Erlangs ir visobjektīvākā valoda vai pat ka Erlangs ir vienīgā patiesā uz objektu orientētā valoda..

Liela daļa no tā attiecas arī uz Eliksīru. No otras puses, varbūt tas ir tikai OO stils, nevis patiess OO.

F #

F # (“F sharp”) ir vairāku paradigmu valoda. Tās kodols ir patiešām funkcionāla programmēšana, bet tas ietver atbalstu OO un mēģinājumus saskaņot šīs divas dažādās pieejas programmēšanai.

  • Sērija “Objektorientēta programmēšana F #”
  • F # Ātrās rokasgrāmatas: uz objektu orientēta programmēšana
  • F # pārskats – obligāta un uz objektu orientēta programmēšana
  • Objektīvi orientēts F # – klašu veidošana
  • Objektorientēta programmēšana F # formātā (PDF)
  • OOP bez klasēm F #.

Fortran

Fortran ir vecākā programmēšanas valoda, kas joprojām tiek plaši izmantota. Kad tas tika izgudrots piecdesmitajos gados, nebija tādas lietas kā orientācija uz objektu. Līdz ar Fortran 2003 valodas izlaišanu Fortran tika pievienots tiešs OOP atbalsts. Bet bija iespējams ieviest dažus OOP pamatjēdzienus iepriekšējās valodas versijās.

  • OOP Fortranā, pirms Fortran bija orientēta uz objektu:
    • Pseido uz objektu orientēts stils Fortran 90
    • Objektorientēta programmēšana, izmantojot Fortran 90 (PDF)
    • Ievads uz objektu orientētās koncepcijās, izmantojot Fortran90.
  • OOP Fortran ar oficiālu atbalstu:
    • Objektorientētā programmēšana Fortranā 2003. gadā
    • Mūsdienu Fortran praksē
    • ZINĀTNISKĀ PROGRAMMĒŠANA FORTRAN 2003: apmācība, kurā iekļauta uz objektu orientēta programmēšana (PDF).

Ej

Go ir salīdzinoši jauna valoda, kuru Google izstrādāja 2007. gadā. Daudz tiek diskutēts par to, vai Go ir orientēts uz objektu.

Go nav tajā nekā, ko sauc par “objektu” vai “klasi”, taču tam ir dažas analogas struktūras. Pēc noteikta viedokļa jūs varat domāt par Go kā uz objektu orientētu.

Daudzi cilvēki patiesībā domā, ka Go ir OO:

  • Iet uz objektu orientētu dizainu
  • Objektorientētā programmēšana Go
  • Objektu orientēti valodas izmēģinātāji aiziet
  • Iet uz objektorientētiem programmētājiem vai uz objektu orientētu programmēšanu bez objektiem (video)
  • Kopsavilkums par objektorientētu programmēšanu Labestība ejot, bez sāpēm.

Java

Java tika uzcelta uz zemes, lai būtu orientēta uz objektiem. Šeit ir daži lieliski resursi, lai jūs varētu izmantot Java:

  • Uz objektu orientēts sistēmas dizains: Stenforda CS108 vietne ar saitēm uz kodiem, izdales materiāliem, lekciju slaidiem un gandrīz visu nepieciešamo, lai patstāvīgi darbotos kursā.
  • Java apmācība: uz objektu orientētas programmēšanas koncepcijas
  • Java programmēšanas apmācība Objektorientētas programmēšanas (OOP) pamati
  • Objektorientētas programmēšanas koncepcijas (sešas video sērijas)
  • Objektorientēta programmēšana – Java apmācība
  • Java pamata apmācība: Objektorientēta programmēšana Java
  • Objektorientēta programmēšana Java
  • Objektorientētas programmēšanas pamati ar Java (PDF).

JavaScript

Daudzi cilvēki neuzskata, ka JavaScript tiešām ir orientēts uz objektu. Bet daudzi citi cilvēki domā, ka tas noteikti tā ir.

Mēs uzskatām, ka mūsu uzdevums ir palīdzēt jums atrast noderīgus resursus, nevis iesaistīties nevēlamajās debatēs. Tātad, šeit ir daži OOP resursi JavaScript:

  • Ievads uz objektu orientētā JavaScript (Mozilla izstrādātāju tīklā)
  • JavaScript: pasaulē visvairāk pārprastā programmēšanas valoda
  • OOP JavaScript: kas jums jāzina
  • Uz objektu orientēts JavaScript: izveidojiet mērogojamas, atkārtoti lietojamas augstas kvalitātes JavaScript lietojumprogrammas un bibliotēkas
  • Objektorientētās JavaScript principi
  • Objektorientēts JavaScript (video).

PHP

PHP neatbalstīja pat pamata OO koncepcijas līdz 4. versijai un neatbalstīja pilnīgu orientāciju uz objektu līdz PHP5.

  • Objektorientēta PHP iesācējiem
  • Objektorientēta PHP absolūtiem iesācējiem
  • Objektorientētas programmēšanas principi PHP
  • Uz objektu orientēta PHP (video)
  • Uz objektu orientēta PHP: koncepcijas, paņēmieni un kods.

Python

Python kodiem nav jābūt orientētiem uz objektu, bet valoda to pilnībā atbalsta. Pārbaudiet šos resursus:

  • Objektorientētā programmēšana: ievads OOP, izmantojot Python, no MIT atvērtā kursprogrammatūras
  • Objektorientēta programmēšana Python
  • Uzlabojiet savu Python: Python klases un uz objektiem orientētu programmēšanu
  • Python kurss: uz objektu orientēta programmēšana
  • 3 Python objektorientētā programmēšana.

Rubīns

Rubīnā viss ir objekts, pat “primitīvi” datu tipi, piemēram, virknes un veseli skaitļi. Jūs pievienojat divus veselus skaitļus, izsaucot pievienošanas metodi vienam no tiem; jūs atradīsit virknes garumu, izsaucot garuma metodi.

  • Lietotāja rokasgrāmata “Ruby”: Uz objektu orientēta domāšana
  • Rubīna modulis: Rubīna programmēšanas valodas galvenā opcija
  • Praktiski uz objektu orientēts dizains rubīnā.

Smalltalk

Smalltalk, iespējams, ir visietekmīgākā uz objektu orientētā valoda, jo tā ir dziļi ietekmējusi valodas, kas nāca vēlāk. Tā rezultātā ir labi vismaz kaut nedaudz iepazīties ar to. Šie resursi palīdzēs jums sākt:

  • Objektorientēta programmēšana ar Smalltalk (PDF)
  • Sīkums un orientācija uz objektiem: ievads (PDF)
  • Smalltalk: darba sākšana ar valodu (video)
  • Programmēšana Smalltalk – orientācija uz objektu no sākuma: ievads programmēšanas principos.

No otras puses…

Ja vēlaties būt vispusīgs izstrādātājs, ir svarīgi izprast jebkura jēdziena labo un slikto. Lai arī orientācija uz objektiem ir kļuvusi par dominējošo izpratni par programmēšanu, ir jāpamato pamatota kritika – gan pašas idejas, gan arī hype kultūra ap tām.

Šeit ir daži resursi, kas piedāvā pretargumentu OOP:

  • Objektorientētā programmēšana ir dārga katastrofa, kurai jābeidzas
  • Uz objektu orientēta programmēšana ir būtībā kaitīga
  • Objektorientētā programmēšana: Stāsts par katastrofu.

Objektorientētā programmēšana šodien

Kaut arī uz objektu orientēta programmēšana joprojām ir svarīga datorprogrammēšanas metodoloģija, tā vairs neuzņemas vietu kā nozares standarts “labai programmatūras izstrādei”. Priekšplānā izvirzās citas paradigmas, īpaši funkcionālā programmēšana, kā arī jaunas valodas, kas tās atbalsta. Tikmēr pieaug kritika par objektu orientētu programmēšanu, kā arī par dizaina modeļu kustību.

Tomēr joprojām liela daļa šodien uzrakstītās programmatūras ir orientēta uz objektu. Ja jūs strādājat kādā no parastām uz objektu orientētām valodām, jums ir jābūt labai izpratnei par objektorientētiem pamatjēdzieniem.

Interesantākas lietas

Mums ir vairāk programmēšanas ceļvežu, mācību materiālu un infografiku, kas saistīti ar kodēšanu un attīstību:

  • C ++ izstrādātāju resursi: papildus informācijai par C ++ ir arī vairāk informācijas par objektu orientētu programmēšanu.
  • Ievads par Linux programmēšanu un resursiem: lai gan tas nav īpaši domāts par objektu orientētu programmēšanu, šī daudzo Linux programmēšanas līmeņu apspriešana jūs pamudinās..
  • INTERCAL ievads un resursi: ja jums grūti šķiet uz objektu orientēta programmēšana, INTERCAL izpēte padarīs to vieglu. Šī parodijas (vai joku) valoda ir tik sarežģīta un briesmīga, ka pat dziļākā diskusija par polimorfismu šķitīs patīkama.

Kāds kods jums jāiemācās?

Neizpratnē par to, kādā programmēšanas valodā jums vajadzētu iemācīties iekļūt? Iepazīstieties ar mūsu infografiku. Kāds kods jums jāiemācās? Tajā aplūkoti ne tikai dažādu valodu aspekti, bet arī sniegti atbildes uz svarīgiem jautājumiem, piemēram, “Cik daudz naudas es nopelnīšu Java programmēšanai iztikai?”

Kāds kods jums jāiemācās?
Kāds kods jums jāiemācās?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map