Objektno usmerjeno programiranje: poenostavljeni pojmi so preprosti

Razkritje: Vaša podpora pomaga pri vzdrževanju spletnega mesta! Za nekatere storitve, ki jih priporočamo na tej strani, zaslužimo naročnino.


Objektno usmerjeno (OO) programiranje je paradigma programiranja, ki vključuje ali se opira na koncept objektov, inkapsulirane podatkovne strukture, ki imajo lastnosti in funkcije in ki delujejo z drugimi predmeti.

Predmeti v programu pogosto predstavljajo predmete iz resničnega sveta – na primer, aplikacija za spletno mesto za e-trgovino ima lahko predmete stranke, predmete Shopping_cart in izdelke izdelka. Drugi predmeti so lahko zelo povezani z enakovrednimi vrednostmi iz realnega sveta – na primer plačilo_procesor ali prijavni obrazec. Številni drugi predmeti služijo logiki aplikacij in nimajo neposrednih vzporednic v realnem svetu – predmeti, ki upravljajo avtentikacijo, predloge, obravnavanje zahtevkov ali katero koli drugo nešteto funkcij, potrebnih za delujočo aplikacijo.

Objektno programirano programiranje

Zgodovina objektno usmerjenega programiranja

Če se zdi, da je objektno usmerjeno programiranje še posebej primerno za modeliranje sistemov v resničnem svetu, to ni naključje. Koncepti, ki so zdaj povezani z objektno usmerjenim programiranjem, vključno z večino jezika za njegovo opisovanje, izvirajo iz programskega jezika Simula, ki je bil uporabljen za simulacijo sistemov resničnega sveta. Leta 1967 so Simuli dodali razrede, podrazrede in predmete.

V 70. letih prejšnjega stoletja je Alan Kay skoval izraz “objektno orientiran”, medtem ko je delal na Smalltalku. To se je nanašalo na obsežno uporabo predmetov v jeziku in na njihovo mesto kot temeljne enote organizacije.

Širjenje objektno usmerjenega programiranja je bilo na začetku razmeroma počasno. Common Lisp je uvedel Common Lisp objektni sistem, ki je Lispu dodajal predmete v poznih sedemdesetih letih. V osemdesetih letih so izumili programski jezik Eiffel, ki je bil povsem objektno naravnan. Eiffelov izumitelj Bertrand Meyer je napisal objektno usmerjeno programsko konstrukcijo, ki je bila ena prvih knjig, ki je široko širila koncepte programiranja OO.

V devetdesetih letih prejšnjega stoletja in v dvajseta leta se je zares usmerjalo objektno programiranje. To je sovpadlo z veliko eksplozijo v tehnološki industriji na splošno v tem obdobju in nenadnim prilivom programerjev v velika tehnološka podjetja. Eno od prodajnih mest objektno usmerjenega programiranja, ki ga spodbujajo njegovi zagovorniki, je, da ločitev pomislekov in ohlapno povezovanje (glej spodaj) omogočata skupinam učinkovitejše delo na velikih sistemih.

Ob koncu prvega desetletja 21. stoletja je objektno usmerjeno programiranje v veliki meri postalo sprejet „pravi način“ razvoja večine programske opreme. Novejši programski jeziki, zlasti z dinamično tipkanimi interpretiranimi jeziki, kot so Python, Ruby in JavaScript, ponavadi prevzamejo ali celo uveljavijo objektno orientiran pristop. Medtem so številni starejši jeziki, kot sta Fortran in COBOL, dodali objektno usmerjene funkcije.

Pomembni objektno usmerjeni koncepti

Objektno usmerjeno programiranje je koncept – način pristopa k problemu oblikovanja računalniškega programa. Ne gre za težko in hitro nabor pravil ali posebno metodologijo. Različni programski jeziki k OOP pristopajo drugače. Nekateri so bolj ali manj strogi, nekateri pa samo drugačni. Sledi splošen pregled oblikovno zasnovanih zasnov. Oglejte si naš sestrski članek Objektno usmerjeno programiranje za vire in podrobnosti, ki pojasnjujejo, kako se ti koncepti izvajajo v različnih jezikih.

Ločitev skrbi

Osrednje vodilno načelo, ki obvešča vse ostale koncepte v objektno usmerjenem programiranju, je ločitev pomislekov. To je ideja, da bi morali biti logično ločeni sveti podatkov in funkcionalnosti ločeni v ločene sveže aplikacijske kode.

Ta ideja ni edinstvena za objektno usmerjeno programiranje. Večina programskih jezikov omogoča ločevanje vprašanj, večina paradigem programiranja pa to spodbuja. Vendar je ločitev pomislekov posebnega pomena za objektno usmerjeno programiranje. Močna ločitev pomislekov je zagon za skoraj vse druge koncepte OO.

Predmeti in razredi

Sprva se zdi, da je temeljni koncept v objektno usmerjenem programiranju objekti. Na nek način je to res. Toda s stališča razvijalca so osnovna skrb razredi.

Razred definira objekt; predmet instancira razred. Za primer, pomislimo na spletno mesto za e-trgovino. Strank je veliko, vendar vsi delajo isto. Tako bi obstajal razred za stranke, v katerem je programer določil, kaj je stranka, in kako deluje. Nato vsakega posameznega kupca v sistemu predstavi uporabnik predmet.

Ker opredelitve razredov določajo vse podrobnosti o izvajanju, večina dela razvoja objektno usmerjenega programa vključuje delo z razredi in ne s predmeti.

Klasični in neklasični jeziki OO

Obstaja kar nekaj jezikov, ki vključujejo veliko število objektno naravnanih konceptov, vendar nimajo konstrukta, ki bi ga posebej imenovali razred. Najbolj znan je JavaScript, ki uporablja prototipe ali generične predmete, ki jih nato kloniramo. Terminologija, osnovna filozofija in celo izvedba “pod kapom” so različni – in vendar je izkušnja razvijalcev v veliki meri enaka.

Jezike z razredi, ki predstavljajo večino jezikov OO, včasih imenujemo “klasična”. To je stavek na besedi “razred” in potrditev, da so razredi postali običajni pristop k objektno usmerjenemu programiranju.

Metode in lastnosti

Objekt ima spremenljivke, ki jih v večini jezikov običajno imenujemo lastnosti ali atributi. Na primer, predmet stranke lahko ima lastnosti, kot je ime_odatka ali ime.

Predmeti imajo tudi funkcije, imenovane metode. To so stvari, ki jih je objekt sposoben narediti, in so opredeljene tudi znotraj razreda. Na primer, stranka lahko ima metode za plačilo, spremembo_shipping_adreso ali odjavo.

Eden od izzivov razvoja dobrih objektno naravnanih programov je določitev, kako razdeliti funkcije med več potencialnih razredov. Na primer, ali mora način nakupa pripadati kupcu ali nakupovalni košarici? Ali je kupec lastnik metode odjave ali stranka pokliče način odjave nekega predmeta Authentication_manager?

Drug izziv za številne nove programerje OO je razumevanje, kako oblikovati razrede, ki ne predstavljajo stvari iz resničnega sveta. Razumevanje, da e-trgovina potrebuje izdelke in da sistem upravljanja projektov potrebuje Projekte, je preprosto. Toda veliki objektno usmerjeni programi imajo nešteto razredov, ki definirajo vse vrste abstraktnih paketov funkcionalnosti, kot so objektni relacijski preslikavci, tovarne objektov in krmilniki (samo če naštejemo tri enostavno razumljive primere).

Krmarjenje po teh pomislekih seveda traja. Objektno usmerjenemu razvijalcu lahko pomaga tudi razumevanje vzorcev oblikovanja in razvojni postopek, ki vključuje modeliranje.

Tu je nekaj virov, ki vam bodo pomagali bolje razumeti razred, lastnosti in metode:

  • Razredi, predmeti, lastnosti in koncepti metod je odličen 10-minutni video pregled teh konceptov;
  • Izbira med lastnostmi in metodami je .NET tutorial, ki zajema nekaj pomislekov o oblikovanju, ki so uporabni za kateri koli jezik;
  • Razumevanje razredov, metod in lastnosti v C # ponuja dobro razlago z nekaj koristnimi diagrami.

Prenos sporočil in dinamična odprema

Razredi in številni drugi koncepti, ki jih tukaj obravnavamo, so postali neprosto povezano z objektno usmerjenim programiranjem. Vendar pa po mnenju računalničarja, ki je skoval izraz, objektno usmerjeno programiranje govori o pošiljanju sporočil.

Prenos sporočil pomeni, da predmeti med seboj komunicirajo s pošiljanjem sporočil. To se sliši nepomembno, vendar vpliva na izvedbo klicev funkcij. Namesto da bi en predmet neposredno poklical funkcije drugega predmeta, bi objekt poslal sporočilo drugemu objektu. Sporočilo vsebuje ime metode in vse povezane parametre. Klicani objekt ima nato možnost obdelave klica, vendar je to potrebno.

Ta sposobnost vsakega predmeta, da po potrebi določi svoj odziv na klice metode, se imenuje dinamična odprema. Omogoča, da se predmeti razvijajo v času izvajanja in se odzivajo na sporočila glede na njihovo trenutno stanje.

Prenos sporočil je lahko nekoliko zmeden, še posebej, ker večina jezikov, ki se danes uporabljajo, izvaja le eno posebno vrsto (klic metode). Tukaj je nekaj virov, ki vam bodo pomagali bolje razumeti:

  • Nekdo je vprašal, kaj sporočilo prehaja v OO? na StackExchange; sledilo je nekaj zelo koristnih odgovorov;
  • Oglejte si tudi Katere so ključne razlike med OO v Smalltalk in Java? za nekaj vpogleda v to, kako se je prenašanje sporočil spremenilo od prvotne ideje do tega, kako večinoma deluje v sodobnih jezikih;
  • Sporočilo Prenos na c2 wikiju ima podrobno, čeprav nekoliko kaotično razlago.

Kapsulacija

Pojem enkapsulacije je tesno povezan s prenosom sporočil in dinamičnim odpošiljanjem. Inkapsulacija pomeni, da koda zunaj predmeta ne more neposredno dostopati do njegovih notranjih podatkov. Če mora na primer en predmet “poznati” lastnost drugega predmeta (na primer, Shipping_manager bo morda potreboval shipping_adress uporabniškega predmeta), potem klicni objekt teh podatkov ne more najti neposredno; prenesti mora sporočilo »vprašati« strankin predmet, ki nato vrne potrebne podatke. (To se običajno izvede s klicem metode.)

Vsi objektivno usmerjeni jeziki ne izvajajo stroge enkapsule; nekatere dovoljujejo neposreden dostop do lastnosti objekta (pridobivanje in nastavitev). Vendar mnogi strokovnjaki za razvoj OO spodbujajo programerje, naj se držijo načel enkapsulacije (tako da lastnosti ne pokličejo neposredno), tudi v jezikih, ki to omogočajo.

Za inkapsulacijo obstaja veliko koristi. Predvsem omogoča, da se kakršne koli podrobnosti ali stranski učinki odvzamejo od mesta, na katerem se imenuje lastnost. Na primer, vsakič, ko preberete določeno vrednost, boste morda želeli preveriti, kdaj je bila nazadnje izračunana, in jo ponovno izračunati, če so izpolnjeni določeni pogoji. To, da lahko kadar koli dodate, odstranite ali spremenite to logiko na enem mestu, ne da bi to vplivalo na katero koli drugo mesto v kodi, ki kliče, je korist za enkapsulacijo.

Dedovanje in sestava

Dedovanje in sestava sta dva načina, kako se različni razredi (in njihovi instancirani predmeti) povezujejo med seboj.

Dedovanje opisuje razmerja “je”: uporabnik je oseba; Stranka je uporabnik. V tem primeru bi lahko obstajal razred Person, ki definira vse lastnosti in metode oseb na splošno (ime, rojstni dan). Nato bi uporabniški razred razširil razred Person in dodal stvari, kot so atribut uporabniškega imena ali prijava in metode odjave. Razred stranke lahko nato razširi uporabnika in doda tiste stvari, ki jih potrebuje samo stranka, na primer naročilnico ali zgodovino ali obračunski naslov.

Sestava opisuje razmerje “ima”, ko en predmet “ima v lasti” drug objekt. Na primer, lahko je v razredu stranke lastnik Billing_address, ki je sam po sebi popoln objekt, definiran v razredu. Tako kot hierarhija dedovanja je tudi kompozicijska hierarhija lahko globoko več plasti. Na primer: kupec ima morda nakupovalno kartico, nakupovalni_art ima več izdelkov, vsak izdelek ima prodajalca itd..

Velik del oblikovalskega dela v objektno usmerjenem razvoju je povezan s kartiranjem teh razmerij dedovanja in sestave. Diagram razredov, ki je del enotnega jezika modeliranja, je neprecenljivo orodje za vizualizacijo teh odnosov.

  • Dediščina in kompozicija: Katerega izbrati? se ukvarja z nekaterimi oblikovnimi premisleki pri gradnji hierarhije razreda zapletenih razredov;
  • Sestava proti dedovanju: Kako izbrati? zajema isto vprašanje, vendar z drugega zornega kota in z več humorja;
  • Java Design: predmete, UML in proces Kirk Knoernschild vključuje poglavje “Sestavljeno načelo ponovne uporabe” v prvem poglavju, ki pojasnjuje, zakaj je sestava včasih boljša, tudi če se dedovanje zdi pravilno.

Polimorfizem

Polimorfizem (ali natančneje podtipov polimorfizem) je koncept, ki seveda izhaja iz dedovanja. Če ima nadrejeni razred (ali “Super razred”) določeno metodo, bodo metodo imeli tudi vsi njeni otroci (“podrazredi”). Vsak podrazred lahko metodo izvaja drugače, vendar za klicanje predmetov ni treba vedeti, katere od več podtipov kličejo. Vse različne podvrste predmetov lahko obravnavajo kot enakovredne.

Polimorfizem je velika tema in ne gre brez polemike. Tukaj je nekaj virov, s katerimi si lahko ovijete glavo:

  • Polimorfizem na Javi – Metoda Preobremenitev in preglasitev je nežen uvod v polimorfizem;
  • Objektno programirani koncepti programiranja: Polimorfizem in vmesniki se nanašajo posebej na ActionScript, vendar nudi veliko podrobnosti o tej temi, vključno z različnimi težavami in omejitvami;
  • Polimorfizem – objektno usmerjeno programiranje v C ++ je lepo video razlago;
  • Načelo nadomestitve Liskov (PDF) je predstavitev, ki vam bo pomagala razumeti podtipkanje.

Preberite več o objektno usmerjenem programiranju

Za poglobljeno razumevanje objektno naravnanega programiranja so številne klasične in sodobne knjige o tej temi neprecenljive in jih skoraj ne moremo nadomestiti s spletnimi vadnicami.

  • Oblike oblikovanja: Elementi večkratne objektno usmerjene programske opreme, Gamma in sod., Je klasična knjiga, ki je uvedla objektno orientiran program glavnim razvijalcem; še vedno je treba brati;
  • Objektno usmerjena analiza in oblikovanje z aplikacijami, Booch in sod., Presegajo pisanje OO kode in vstopijo v meso gibanja OOP, ki je analiza in oblikovanje sistemov;
  • Objektno orientiran miselni proces Matt Weisfeld je dobra knjiga za razvijalce, usposobljene za postopkovno ali funkcionalno programiranje in ki morajo svoje znanje izpopolniti v predmete in razrede;
  • OOP Demystified, Keogh in Giannini, predstavlja vadnico o OOP v kontekstu razvoja aplikacij v resničnem svetu, s poudarkom na veščinah in razmišljanju, potrebnih za uporabo objektno usmerjene analize in postopka oblikovanja;
  • Objektno usmerjena programska konstrukcija Bertranda Meyerja je klasična knjiga o OO, ena prvih, ki je predstavila tehniko in filozofijo, na katerih temeljijo koncepti; nekateri materiali v tej knjigi se lahko zdijo datirani, vendar so osnove še vedno pomembne;
  • Pojasnjeni vzorci oblikovanja: Nova perspektiva objektno usmerjenega oblikovanja, Shalloway in Trott, je najpomembnejša knjiga, ki izboljšuje prakso oblikovalskih vzorcev ali strategij za večkratno uporabo za reševanje ponavljajočih se težav;
  • Modeli predmetov: Strategije, vzorci in aplikacije, Coad, North in Mayfield, so dober spremljevalec pojasnjenim vzorcem oblikovanja, ki ponujajo številne dodatne vzorce in strategije za objektno usmerjeno programiranje.

Za bolj praktično in sodobno razumevanje objektno naravnanih programskih koncepcij preizkusite enega ali več teh spletnih virov:

  • Hitro učenje objektno usmerjenega programiranja je vadnica na osnovi Pythona iz razvijalske mreže Mozilla;
  • Objektno orientirani programski koncepti so vadbe Oracle, ki pokrivajo objektno usmerjene osnove programiranja z vidika Java;
  • Objektivno usmerjeno programsko vadbo predstavlja jezikovno-agnostistični uvod v temeljne koncepte;
  • Uvod v objektno programirane koncepte programiranja in drugo je odličen pregled objektno usmerjenega programiranja in tudi več tesno povezanih predmetov, na primer arhitekture programske opreme in vzorcev oblikovanja;
  • Pregled objektno usmerjenega programiranja iz Codecademy, uporablja JavaScript in urejevalnik v brskalniku, ki vam omogoča takojšnje delo s koncepti (vendar ne pozabite, da JavaScript izvaja koncepte OOP nekoliko drugače);
  • Objektno osredotočene osnove programiranja je še en vir Java, z veliko koristnimi primeri z resničnimi razredi.

Pomembni predmetno usmerjeni jeziki

Vsi programski jeziki ne podpirajo objektno usmerjenega programiranja. Nekateri jeziki so zasnovani tako, da ne omogočajo samo podpiranja OOP. Drugi omogočajo različne pristope k programiranju. Zdi se, da so drugi objektno usmerjeni, vendar koncepte orientacije predmeta izvajajo na nestandardne, nepopolne ali navadne nenavadne načine.

Spodaj je seznam nekaterih bolj priljubljenih jezikov, ki omogočajo OO, z opombami o njihovem pristopu k orientaciji predmetov in nekaj virov, ki vam bodo pomagali pri vstopu v OOP s tem jezikom.

Internet je napolnjen z eseji, ki gledajo na jezik X v primerjavi z jezikom Y – večina tega samo opraska površino. Predlagamo, da si ogledate to splošnejšo primerjavo programskega jezika. Ta premišljena analiza obravnava posebne podrobnosti več priljubljenih jezikov OO in govori o tem, kako se posamezni koncepti OO izvajajo v vsakem.

Jeziki na osnovi C

C ni objektno orientiran jezik. Vendar pa je v to mogoče vsaj napisati OO kodo:

  • Objektno programirano programiranje z ANSI-C (PDF)
  • Phil-ov vodnik po objektno orientiranem ANSI C
  • Objektno usmerjeno programiranje na C.

Nobena od tehnik, opisanih v teh knjigah in člankih, ni posebej močna ali enostavna za obravnavo programov, ki niso trivialni. Namesto da bi C raztegnili do njegovih meja, obstajajo trije neposredni potomci C, ki vključujejo objektno usmerjena jezikovna orodja.

C++

C ++ je multi-paradigma, kar pomeni, da podpira več različnih načinov programiranja (PDF), vključno z usmerjenostjo v objekt. Temelji na C in je razvit posebej za dodajanje podpore OOP-jevemu konceptu razredov.

  • Objektno usmerjeno programiranje (OOP) v C ++: odličen uvodni vodnik profesorja računalništva
  • Učenje objektno usmerjenega programiranja v jeziku C ++: obsežna vadnica o večjem delu o OOP
  • C ++ Tutorial 20-1 – Razredi in objektno usmerjeno programiranje: del večje serije videov na C ++, ta seja začne pokrivati ​​koncepte OOP
  • Uvod v objektno usmerjeno programiranje z uporabo C++
  • Objektno programirano programiranje na C++.

C #

C # (“C oster”) je še en C-derivat, ki je večinoma zasnovan kot izboljšava nad C ++ za uporabo v Microsoftovem .NET Framework.

  • Objektno programirano programiranje v C #
  • C # Objektno usmerjeno programiranje Basic to Advance (video)
  • Koncepti C # OOPS (video)
  • Objektno usmerjene osnove programiranja v C #: vrhunska vadnica iz PLuralsight (brezplačna preizkusna različica)
  • Uvod v objektno usmerjene koncepte programiranja v C #: zajema abstrakcijo, enkapsulacijo, dedovanje in polimorfizem v C #
  • Top 10 konceptov OOPS v C # .NET s primeri: odličen hiter vodnik za orientacijo v C #, če že razumete koncepte OOP
  • Učenje C #: Kako obvladati objektno usmerjen programski jezik: pregled na visoki ravni, kako najbolje pristopiti k učenju C # in OOP na splošno
  • Začetek C # Objektno programirano programiranje.

Cilj-C

Objective-C je bil razvit približno v istem času kot C ++, z bistveno istim ciljem – dodajanje zmogljivosti OOP na C. Danes je Objective-C resnično uporabljen le v Apple-ovi platformi za razvoj kakava za OS X in iOS ter GNUstep, njegov Open Source alternativa.

  • Objektno usmerjeno programiranje s Objective-C
  • Uvod v objektno usmerjeno oblikovanje
  • Objektno usmerjeno programiranje in jezik Objective-C (PDF)
  • Uvod v objektno usmerjeno programiranje.

Navadni Lisp

Lisp v bistvu ni predmetno usmerjen. Vendar Common Lisp, eno izmed bolj priljubljenih Lispovih narečji, vključuje skupni sistem Lisp objekt (CLOS), ki omogoča funkcije OOP.

Pristop k objektni orientaciji, implementiran v sistemu CLOS, je korenito drugačen kot način ravnanja z OO v drugih jezikih. To pomeni, da CLOS ni odličen kraj za začetek, če se želite naučiti OO na splošno ali uporabljati OO v drugih vrstah jezikov. Če pa vstopate v Lisp, je CLOS zelo pomemben. Poleg tega, če se vam zdi OOP še posebej zanimiv, boste uživali v študiju CLOS-a, da bi koncepte OO videli v drugačni luči.

  • Osnove CLOS-a
  • Kratek vodnik za CLOS
  • Skupni sistem predmetov Lisp: pregled (PDF)
  • CLOS: Integracija objektnega in funkcionalnega programiranja (PDF)
  • Objektno programirano programiranje v COMMON LISP: Vodnik programerja za CLOS.

Erlang

Po nekaterih običajnih stališčih Erlang ni objektno orientiran jezik. Vendar obstaja nasprotujoče mnenje manjšin, ki je nasprotno, in njegovi zagovorniki trdijo, da je Erlang najbolj objektni jezik ali celo, da je Erlang edini pravi objekt, usmerjen v objekt.

Veliko tega velja tudi za Elixir. Po drugi strani pa je morda to le OO-slog, ne pa pravi OO.

F #

F # (“F ostr”) je jezik več paradigme. Njeno jedro je resnično funkcionalno programiranje, vendar vključuje podporo OO in poskuse uskladitve teh dveh različnih pristopov k programiranju.

  • Objektno usmerjeno programiranje v seriji F #
  • F # Hitri vodniki: Objektno programirano programiranje
  • F # Pregled – Imperativno in objektno usmerjeno programiranje
  • Objektno usmerjen F # – Ustvarjanje razredov
  • Objektno usmerjeno programiranje v F # (PDF)
  • OOP brez pouka v F #.

Fortran

Fortran je najstarejši programski jezik, ki se še vedno uporablja. Ko so ga izumili v petdesetih letih, ni bilo takega, kot je usmeritev predmetov. Izrecna podpora OOP je bila dodana Fortranu z izdajo jezika Fortran 2003. Toda nekatere osnovne koncepte OOP je bilo mogoče uporabiti v prejšnjih različicah jezika.

  • OOP v Fortranu, preden je bil Fortran objektno orientiran:
    • Psevdo objektno orientiran slog v Fortranu 90
    • Objektno usmerjeno programiranje prek Fortrana 90 (PDF)
    • Uvod v objektno usmerjene koncepte z uporabo Fortran90.
  • OOP v Fortranu z uradno podporo:
    • Objektno usmerjeno programiranje v Fortranu 2003
    • Sodobni Fortran v praksi
    • ZNANSTVENO PROGRAMIRANJE V FORTRANU 2003: Vadnica, ki vključuje objektno usmerjeno programiranje (PDF).

Pojdi

Go je relativno nov jezik, ki ga je razvil Google leta 2007. Veliko se pogovarja o tem, ali je Go predmet objektno usmerjen ali ne.

Go nima v njem ničesar, kar bi se imenovalo “objekt” ali “razred”, vendar ima nekaj podobnih struktur. Z določenega zornega kota si torej lahko omislite Go kot objektno usmerjeno.

V resnici mnogi mislijo, da je Go to OO:

  • Pojdi objektno usmerjeno oblikovanje
  • Objektno usmerjeno programiranje v programu Go
  • Objektno usmerjeni jezikovni vzorci v Go
  • Pojdite na objektno usmerjene programerje ali na objektno usmerjeno programiranje brez predmetov (video)
  • Povzetek objektno usmerjenega programiranja Goodness in Go, brez bolečin.

Java

Java je bila zgrajena od tal navzgor, da bi bila objektno usmerjena. Tukaj je nekaj odličnih virov, ki vam bodo pomagali z Java:

  • Objektno oblikovano sistemsko oblikovanje: spletno mesto za Stanfordov CS108 s povezavami do kode, izročil, diapozitivov in precej vsega, kar potrebujete za samostojno opravljanje tečaja
  • Vadnica Java: Pojmi za objektno programiranje
  • Vodič za programiranje Java Osnove objektno usmerjenega programiranja (OOP) Osnove
  • Objektno zasnovani koncepti programiranja (šest video serij)
  • Objektno usmerjeno programiranje – Java Tutorial
  • Tutorial Java Fundamentals: Objektno programirano programiranje v Javi
  • Objektno usmerjeno programiranje v Javi
  • Objektno osnove programiranja z Javo (PDF).

JavaScript

Mnogi ljudje ne mislijo, da je JavaScript resnično usmerjen v objekt. Toda veliko drugih ljudi misli, da to vsekakor je.

Menimo, da je naša naloga, da vam pomagamo najti koristne vire, ne pa da se držimo strani v nepredstavljivih razpravah. Tukaj je nekaj virov OOP za JavaScript:

  • Uvod v objektno usmerjeni JavaScript (Mozilla Developer Network)
  • JavaScript: Najbolj napačno razumljen programski jezik na svetu
  • OOP V JavaScript: Kaj morate vedeti
  • Objektno usmerjen JavaScript: ustvarite kakovostne in kakovostne JavaScript aplikacije in knjižnice, ki jih je mogoče večkrat uporabiti
  • Načela objektno usmerjenega JavaScript
  • Objektno usmerjen JavaScript (video).

PHP

PHP ni podpiral niti osnovnih konceptov OO do različice 4 in ni podpiral popolne orientacije predmeta do PHP5.

  • Objektno usmerjen PHP za začetnike
  • Objektno usmerjen PHP za absolutne začetnike
  • Načela objektno usmerjenega programiranja v PHP
  • Objektno usmerjen PHP (video)
  • Objektno usmerjen PHP: koncepti, tehnike in kode.

Python

Ni potrebno, da kode Python niso predmetno usmerjene, vendar ga jezik v celoti podpira. Oglejte si te vire:

  • Objektno usmerjeno programiranje: uvod v OOP s pomočjo Pythona iz MIT-ove odprte tečaje
  • Objektno programirano programiranje v Pythonu
  • Izboljšajte Python: Python razrede in objektno usmerjeno programiranje
  • Tečaj Python: Objektno programirano programiranje
  • Objektno programiranje Python 3.

Ruby

V Rubyju je vse predmet, tudi “primitivni” tipi podatkov, kot so nizi in cela števila. Dve celi številki dodate s klicanjem metode dodajanja na enem od njih; dolžino niza najdete tako, da pokličete metodo dolžine na njej.

  • Uporabniški priročnik Ruby: Objektno usmerjeno razmišljanje
  • Ruby modul: glavna OOP značilnost programskega jezika Ruby
  • Praktičen objektno usmerjen dizajn v Rubyju.

Smalltalk

Smalltalk je verjetno najvplivnejši predmetno usmerjen jezik, ki je močno vplival na jezike, ki so se pojavili pozneje. Kot rezultat, je dobro, da se z njim vsaj malo seznanite. Ti viri bodo začeli:

  • Objektno usmerjeno programiranje z Smalltalk (PDF)
  • Mali pogovor in usmeritev k objektom: uvod (PDF)
  • Smalltalk: Uvod v jezik (video)
  • Programiranje malega pogovora – usmeritev k predmetu od začetka: uvod v načela programiranja.

Po drugi strani…

Če želite biti dobro zaobljeni razvijalci, je pomembno razumeti dobro in slabo katerega koli koncepta. Čeprav je usmeritev predmetov postala prevladujoč način razumevanja programiranja, je treba utemeljiti kritike – tako samih idej kot kulture hype, ki jih obdaja..

Tukaj je nekaj virov, ki predstavljajo protiargument OOP:

  • Objektno usmerjeno programiranje je draga nesreča, ki se mora končati
  • Objektno usmerjeno programiranje je že samo po sebi škodljivo
  • Objektno usmerjeno programiranje: zgodba o katastrofah.

Objektno usmerjeno programiranje danes

Čeprav je objektno usmerjeno programiranje še vedno pomembna metodologija v računalniškem programiranju, ne predstavlja več svojega industrijskega standarda za “dober razvoj programske opreme”. V ospredje prihajajo tudi druge paradigme, zlasti funkcionalno programiranje, skupaj z novimi jeziki, ki jih podpirajo. Medtem naraščajo kritike objektno usmerjenega programiranja in gibanja oblikovalskih vzorcev.

Kljub temu je velika količina programske opreme, napisane danes, usmerjena v objekt. Če delate v katerem koli od običajnih objektno usmerjenih jezikov, morate dobro razumeti osnovne objektno usmerjene koncepte.

Več zanimivih stvari

Imamo več programskih vodnikov, vadnic in infografik, povezanih s kodiranjem in razvojem:

  • Viri za razvijalce C ++: poleg informacij o C ++ je na voljo še več informacij o objektno usmerjenem programiranju.
  • Linux Programming Uvod in viri: čeprav ne posebej za objektno usmerjeno programiranje, vas bo ta razprava o številnih nivojih programiranja Linuxa spodbudila..
  • INTERCAL Uvod in viri: če se vam zdi objektno usmerjeno programiranje težko, bo učenje INTERCAL-a enostavno. Ta parodični (ali šaljivi) jezik je tako zapleten in grozen, da se zdi celo najgloblje razpravljanje o polimorfizmu prijetno.

Katere kode bi se morali naučiti?

Zmeden, v kateri programski jezik se morate naučiti kodirati? Oglejte si našo infografiko. Kakšno kodo bi se morali naučiti? Ne samo, da razpravlja o različnih vidikih jezikov, temveč odgovarja na pomembna vprašanja, kot so: “Koliko denarja bom zaslužil za programiranje Java?”

Katere kode bi se morali naučiti?
Katere kode bi se morali naučiti?

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