Objektum-orientált programozás: A bonyolult fogalmak egyszerűvé tétele

Közzététel: Támogatása segít fenntartani a webhely működését! Az ezen az oldalon javasolt szolgáltatások némelyikén referenciadíjat keresünk.


Objektum-orientált (OO) programozás egy olyan programozási paradigma, amely magában foglalja vagy támaszkodik az objektumok koncepciójára, olyan tulajdonságokkal és funkciókkal ellátott, beépített adatszerkezetekre, amelyek más objektumokkal kölcsönhatásba lépnek.

A programban szereplő objektumok gyakran valós objektumokat képviselnek – például egy e-kereskedelmi webhely alkalmazásban lehetnek ügyfélobjektumok, Shopping_cart objektumok és termékobjektumok. Más objektumok lazán kapcsolódhatnak a valós egyenértékű ekvivalensekhez – például a Payment_processor vagy a Login_form. Sok más objektum az alkalmazás logikáját szolgálja, és nincs közvetlen valós párhuzamossága – objektumok, amelyek kezelik a hitelesítést, a sablonokat, a kérelmek kezelését vagy a működő alkalmazáshoz szükséges számtalan egyéb funkciót..

Objektumorientált programozás

Objektum-orientált programozás története

Ha úgy tűnik, hogy az objektum-orientált programozás különösen alkalmas a valós rendszerek modellezésére, akkor ez nem véletlen. Az objektum-orientált programozáshoz kapcsolódó fogalmak, beleértve a leírás nyelvének nagy részét, a Simula programozási nyelvből származnak, amelyet a valós rendszerek szimulálására használtak. Osztályokat, alosztályokat és tárgyakat 1967-ben adtak a Szimulának.

Az 1970-es években Alan Kay megalkotta az „objektum-orientált” kifejezést, miközben a Smalltalk-on dolgozott. Ez a tárgyak széles nyelvhasználatára utal, és azok helyére, mint a szervezet alapvető elemére.

Az objektum-orientált programozás elterjedése kezdetben viszonylag lassú volt. A Common Lisp az 1970-es évek végén bevezette a Common Lisp Object System-t, amely objektumokat ad hozzá Lisp-hez. Az 1980-as években kitalálták az Eiffel programozási nyelvet, amely teljesen objektum-orientált volt. Az Eiffel feltalálója, Bertrand Meyer írta Object-Oriented Software Construction, amely az egyik első könyv, amely széles körben elterjesztette az OO programozás fogalmait..

Az 1990-es és a 2000-es években az objektum-orientált programozás valóban elindult. Ez egybeesett a műszaki iparban általában abban az időszakban zajló hatalmas robbanással és a programozók hirtelen beáramlásával a nagy technológiai vállalatokba. Az objektum-orientált programozás egyik értékesítési pontja, amelyet támogatói támogatnak, hogy az aggályok szétválasztása és a laza összekapcsolódás (lásd alább) lehetővé teszi a csapatok számára, hogy a nagy rendszereknél hatékonyabban dolgozzanak.

A 21. század első évtizedének végére az objektum-orientált programozás nagyrészt a legtöbb szoftver fejlesztésének elfogadott „egyetlen helyes útjává” vált. Az újabb programozási nyelvek, különösen a dinamikusan gépelt értelmezett nyelvek, például a Python, a Ruby és a JavaScript általában objektum-orientált megközelítést vállalnak, vagy éppen érvényesítenek. Eközben sok régebbi nyelv, mint például a Fortran és a COBOL, objektum-orientált funkciókat vezetett be.

Fontos objektum-orientált fogalmak

Az objektum-orientált programozás egy fogalom – egy módszer a számítógépes program megtervezésének problémájához. Ez nem egy kemény és gyors szabálykészlet vagy speciális módszertan. A különböző programozási nyelvek eltérően közelítik meg az OOP-t. Egyesek többé-kevésbé szigorúak, mások csak különböznek egymástól. Az alábbiakban bemutatjuk az objektum-orientált tervezési koncepciók általános áttekintését. Tekintse meg testvércikkünk, az Objektum-orientált programozás forrásait és részleteit, amelyek magyarázatot nyújtanak ezeknek a fogalmaknak a végrehajtására számos különböző nyelven.

Az aggodalmak szétválasztása

A központi irányadó elv, amely az objektum-orientált programozás összes többi fogalmát ismeri, az aggodalom elválasztása. Ez az ötlet, hogy a logikailag különálló adatcsomagokat és a funkcionalitást el kell különíteni az alkalmazáskód különálló kötegeibe.

Ez az ötlet nem egyedi az objektum-orientált programozásnál. A legtöbb programozási nyelv lehetővé teszi az aggályok elválasztását, és a legtöbb programozási paradigma támogatja azt. Az aggodalmak szétválasztása azonban különös jelentőségű az objektum-orientált programozás szempontjából. Szinte az összes többi OO-koncepció mögött az aggodalmak szilárd elkülönítése áll.

Tárgyak és osztályok

Először úgy tűnik, hogy az objektum-orientált programozás alapvető fogalma az objektumok. Bizonyos értelemben ez igaz. A fejlesztő szempontjából azonban az alapvető gond az osztályok.

Az osztály meghatároz egy objektumot; egy objektum egy osztályt vált ki. Példaként gondoljunk egy e-kereskedelmi webhelyre. Nagyon sok ügyfél van, de mind ugyanazt csinálják. Tehát lenne egy Ügyfél osztály, amelyben a programozó meghatározta, mi az ügyfél és hogyan működik. Ezután minden egyes ügyfelet a rendszerben egy ügyfélobjektum képvisel.

Mivel az osztálydefiníciók meghatározzák az összes végrehajtási részletet, az objektum-orientált program kidolgozásának nagy része az osztályokkal, nem pedig az objektumokkal való munkát foglalja magában.

Klasszikus és nem klasszikus OO nyelvek

Vannak olyan maroknyi nyelv, amelyek tartalmaznak sok objektum-orientált fogalmat, de amelyeknek nincs kifejezetten osztálynak nevezett konstrukció. A legjelentősebb a JavaScript, amely prototípusokat használ, vagy általános objektumok, amelyeket ezután klónoznak. A terminológia, az alapjául szolgáló filozófia és még a „motorháztető alatt” megvalósítás is különbözik – és a fejlesztői tapasztalatok nagyjából ugyanazok.

Az OO nyelvek többségét képviselő osztályokkal járó nyelveket néha klasszikusnak nevezik. Ez egyben az „osztály” szó bevezetése és annak elismerése, hogy az osztályok az objektum-orientált programozás szokásos megközelítésévé váltak.

Módszerek és tulajdonságok

Az objektumnak vannak változói, amelyeket a legtöbb nyelvben általában tulajdonságoknak vagy attribútumoknak hívnak. Például az Ügyfél-objektum tulajdonságai lehetnek, például a szállítási_cím vagy a név.

Az objektumoknak is vannak funkciói, úgynevezett módszerek. Ezek olyan dolgok, amelyeket az objektum képes megtenni, és ezeket az osztályon belül is meghatározzák. Például az Ügyfél objektumnak lehet módjai a fizetéshez, a változás_szállítás_címhez vagy a kijelentkezéshez.

A jó objektum-orientált programok fejlesztésének egyik kihívása az, hogy meghatározzuk, hogyan kell megosztani a funkciókat több potenciális osztály között. Például, a fizetési módszernek az Ügyfélnek vagy a Bevásárlókosárnak kell-e tartoznia? A Vevő rendelkezik-e a kijelentkezési módszerrel, vagy hívja-e az Ügyfél a Authentication_manager objektumok kijelentkezési módszerét?

Sok új OO programozó számára egy másik kihívás az, hogy megértsük, hogyan lehet olyan osztályokat megtervezni, amelyek nem képviselik a valós dolgokat. Megérteni, hogy az e-kereskedelemnek termékekre és egy projektmenedzsment rendszerre van szüksége, a projekteknek elég könnyű. A nagy objektum-orientált programoknak azonban számtalan osztálya van, amely meghatározza a funkciók mindenféle absztrakt kötegeit, például az objektum-relációs térképezőket, az objektumgyárakat és a vezérlőket (csak három könnyen érthető példát kell megnevezni)..

Ezekben az aggodalmakban való navigálás természetesen gyakorlatot igényel. Az objektum-orientált fejlesztõknek segítséget nyújthat a tervezési minták megértése és a modellezést is magában foglaló fejlesztési folyamat.

Íme néhány forrás, amely segít megérteni az osztályt, a tulajdonságokat és a módszereket:

  • Az Osztályok, objektumok, tulajdonságok és módszerkoncepciók nagyszerű 10 perces video áttekintést nyújtanak ezekről a fogalmakról;
  • A Tulajdonságok és metódusok közötti választás egy .NET oktatóprogram, amely néhány, a nyelvekre vonatkozó tervezési szempontokat ismertet;
  • Az osztályok, módszerek és tulajdonságok megértése a C # -ben jó magyarázatot nyújt néhány hasznos diagrammal.

Üzenet átadása és dinamikus küldése

Az osztályok és számos más itt tárgyalt fogalom elválaszthatatlanul kapcsolódnak az objektum-orientált programozáshoz. A kifejezést alkotó számítógépes tudós szerint azonban az objektum-orientált programozás az üzenet átadásáról szól.

Az üzenet átadása azt jelenti, hogy az objektumok üzenetek küldésével kommunikálnak egymással. Ez triviálisnak hangzik, de befolyásolja a funkcióhívások kezdeteit. Ahelyett, hogy az egyik objektum közvetlenül hívná a másik objektum funkcióit, az objektum üzenetet továbbít egy másik objektumnak. Az üzenet tartalmazza a metódus nevét és a hozzá kapcsolódó paramétereket. A meghívott objektum ezután képes kezelni azt a metódushívást, amelyre szükség van.

Ezt a képességet az egyes objektumok számára, hogy szükség szerint meghatározzák a metódushívásokra adott választ, dinamikus küldésnek hívják. Ez lehetővé teszi az objektumok számára, hogy futás közben fejlődjenek, és az üzenetekre a jelenlegi állapotuk szerint reagáljanak.

Az üzenetek átadása kissé zavaró lehet, különösen mivel a manapság használt nyelvek többsége csak egy bizonyos fajtát (a módszerhívást) valósít meg. Íme néhány forrás, amely segít megérteni azt:

  • Valaki azt kérdezte, hogy mi az üzenet továbbadása az OO-ban? a StackExchange oldalon; néhány nagyon hasznos válasz követett;
  • Lásd még: Melyek a legfontosabb különbségek az OO között a Smalltalk és a Java esetében? némi betekintést nyújt arra, hogy az üzenettovábbítás hogyan változott az eredeti ötletről arra, hogy az hogyan működik leginkább a kortárs nyelveken;
  • Üzenet A c2 wiki továbbítása részletes, ha kissé kaotikus magyarázatot tartalmaz.

Egységbezárás

Az üzenettovábbításhoz és a dinamikus küldéshez szorosan kapcsolódik a beágyazás fogalma. A beágyazás azt jelenti, hogy az objektumon kívüli kód nem tudja közvetlenül elérni a belső adatait. Ha például az egyik objektumnak „tudnia kell” egy másik objektum tulajdonságát (például a Szállítás_kezelőnek szüksége lehet egy Ügyfél-objektum szállítási_címére), akkor a hívó objektum nem találja ezeket az adatokat közvetlenül; el kell küldenie egy üzenetet, amely „megkérdezi” az Ügyfél objektumot, és ezután visszatér a szükséges adatokhoz. (Ez általában módszerhívással történik.)

Nem minden objektum-orientált nyelv érvényesíti a szigorú beilleszkedést; egyesek lehetővé teszik az objektum tulajdonságainak közvetlen elérését (megszerzését és beállítását). Az OO fejlesztésében sok szakember azonban arra ösztönzi a programozókat, hogy tartsák be a kapszulázási elveket (azáltal, hogy közvetlenül nem hívják meg a tulajdonságokat), még azokon a nyelveken is, amelyek ezt lehetővé teszik.

A kapszulázásnak számos előnye van. Elsődlegesen lehetővé teszi minden részlet vagy mellékhatás kivonását attól a ponttól, amikor a tulajdonságot meghívják. Például, minden alkalommal, amikor egy adott értéket elolvasnak, érdemes ellenőrizni, hogy mikor számították utoljára, és újra kiszámítani, ha bizonyos feltételek teljesülnek. A beágyazás előnye, hogy bármikor hozzáadhatja, eltávolíthatja vagy megváltoztathatja ezt a logikát egy helyen, anélkül, hogy befolyásolná a hívást kezdeményező kód többi helyét..

Öröklés és összetétel

Az öröklés és a kompozíció kétféle módon kapcsolódnak egymáshoz a különféle osztályok (és azok megtestesített tárgyai).

Az öröklés „egy” kapcsolatokat ír le: a felhasználó személy; az Ügyfél Felhasználó. Ebben a példában lehet egy Személyosztály, amely általában meghatározza a Személyek összes tulajdonságát és módszerét (név, születésnap). Ezután egy felhasználói osztály kibővíti a Személy osztályt, hogy olyan dolgokat adjon hozzá, mint a felhasználónév attribútum vagy a bejelentkezés és kijelentkezés módszerei. Egy ügyfélosztály ezután kiterjesztheti a felhasználót, és hozzáadhatja azokat a dolgokat, amelyekre csak az ügyfeleknek szüksége van, például a order_history vagy billing_address.

A kompozíció leírja a „van egy” kapcsolatot, amikor az egyik objektum „birtokolja” egy másik objektumot. Például az Ügyfélosztály tulajdonosa lehet egy Billing_address, amely maga is egy osztályban meghatározott teljes értékű objektum. Az öröklési hierarchiához hasonlóan a kompozíciós hierarchia könnyen több rétegű is lehet. Például: egy ügyfélnek van Shopping_cart-ja, a Shopping_cart-nak több Terméke van, minden Terméknek eladó, és így tovább.

Az objektum-orientált fejlesztés során a tervezés nagy része az öröklés és a kompozíció kapcsolatának feltérképezésével kapcsolatos. Az osztálydiagram, amely az Unified Modeling Language része, felbecsülhetetlen értékű eszköz e kapcsolatok megjelenítéséhez.

  • Öröklés versus összetétel: melyiket válassza? belemegy néhány tervezési megfontolásba, amikor egy összetett osztályhierarchiát építünk fel;
  • Összetétel vs örökség: Hogyan válasszunk? ugyanazt a kérdést fedezi fel, de más szemszögből és több humorral;
  • Java Design: Objects, UML és Process, Kirk Knoernschild, az első fejezetben tartalmazza a „Composite Reuse Principle” című szakaszt, amely elmagyarázza, hogy miért jobb az összetétel akkor is, ha az öröklés megfelelőnek tűnik.

polimorfizmus

A polimorfizmus (vagy pontosabban az altípus polimorfizmus) olyan fogalom, amely természetesen az öröklésből származik. Ha egy szülői osztálynak (vagy “szuper osztálynak” van egy adott módszere), akkor annak minden gyermekének (“alosztályok”) is megvan a módszer. Az egyes alosztályok eltérő módon valósíthatják meg a módszert, de a hívóobjektumoknak nem kell tudniuk, hogy melyik altípus közül többet hívnak. Képesek egyenként kezelni az objektumok összes altípusát.

A polimorfizmus nagy téma, és nincs vita nélkül. Íme néhány forrás, amelyek segítik a fejed körbefordítását:

  • Polimorfizmus a Java-ban – A módszer túlterhelése és felülbírálása a polimorfizmus gyengéd bevezetése;
  • Objektum-orientált programozási koncepciók: A polimorfizmus és az interfészek kifejezetten az ActionScript-ről szólnak, de nagyon sok részletet tartalmaz a témában, beleértve a különböző problémákat és korlátozásokat;
  • Polimorfizmus – Objektum-orientált programozás a C ++-ban egy szép videó magyarázat;
  • A Liskov-helyettesítési elv (PDF) egy bemutató, amely segít megérteni az altípusokat.

További információ az objektum-orientált programozásról

Az objektum-orientált programozás mély megértése érdekében számos klasszikus és kortárs témájú könyv felbecsülhetetlen értékű, és alig lehet helyettesíteni online oktatóprogramokkal.

  • Tervezési minták: Az újrafelhasználható, objektum-orientált szoftver elemei, Gamma, et al., A klasszikus könyv, amely objektum-orientált programot mutatott be a mainstream fejlesztőknek; még mindig kötelező olvasni;
  • Objektum-orientált elemzés és tervezés alkalmazásokkal, Booch, et al., Meghaladja az OO kódot, és belekerül az OOP-mozgalom húsába, amely a rendszerek elemzése és tervezése;
  • Matt Weisfeld objektumorientált gondolkodási folyamata jó könyv azoknak a fejlesztőknek, akik jártasak az eljárási vagy funkcionális programozásban, és akiknek át kell képezniük tárgyaikat és osztályaikat;
  • Az OOP Demystified, Keogh és Giannini, bemutatja az OOP oktatását a valós alkalmazásfejlesztés összefüggésében, összpontosítva az objektum-orientált elemzési és tervezési folyamat alkalmazásához szükséges készségekre és gondolkodásra;
  • Az Object-Oriented Software Construction, Bertrand Meyer, egy klasszikus könyv az OO-ról, az elsők között mutatták be a koncepciók alapjául szolgáló technikát és filozófiát; A könyv néhány anyagának dátuma lehet, de az alapok továbbra is relevánsak;
  • Magyarázott tervezési minták: Shalloway és Trott, az objektum-orientált tervezés új perspektívája, a legfontosabb könyv, amely elősegíti a tervezési minták vagy az újrafelhasználható stratégiák gyakorlását az ismétlődő problémák kezelésére;
  • Objektummodellek: A Coad, North és Mayfield által készített stratégiák, minták és alkalmazások jó társa a magyarázott tervezési mintáknak, számos további mintát és stratégiát biztosítva az objektum-orientált programozáshoz..

Az objektum-orientált programozási koncepciók praktikusabb és kortársabb megértése érdekében próbálja ki az online erőforrások közül egyet vagy többet:

  • Objektum-orientált programozás egy Python-alapú oktatóprogram a Mozilla Developer Network-től;
  • Objektum-orientált programozási koncepciók az Oracle bemutatója, amely tárgy-orientált programozási alapokat fed le Java szempontból;
  • Objektum-orientált programozási oktatóprogram bemutatja az alapfogalmak nyelviagnosztikai bevezetését;
  • Bevezetés az objektum-orientált programozási koncepciókba és még sok más, az objektum-orientált programozás nagy áttekintése, valamint számos szorosan kapcsolódó téma, például a szoftver architektúrája és a tervezési minták;
  • Az Objektum-orientált programozás áttekintése a Codecademy-ből, a JavaScript és egy böngészőn belüli szerkesztő használatával lehetővé teszi a fogalmak azonnali működését (de ne feledje, hogy a JavaScript az OOP-koncepciókat kicsit másképp hajtja végre);
  • Az objektum-orientált programozási alapok egy másik Java erőforrás, sok hasznos példával, valós osztályokkal.

Fontos, objektumorientált nyelvek

Nem minden programozási nyelv támogatja az objektum-orientált programozást. Egyes nyelvek célja az, hogy csak az OOP támogatását szolgálják. Mások a programozás sokféle megközelítését teszik lehetővé. Mások még úgy tűnik, hogy objektum-orientáltak, de az objektum-orientáció fogalmait nem szabványos, hiányos, vagy egyszerűen szokatlan módon hajtják végre..

Az alábbiakban felsorolunk néhány népszerűbb OO-képes nyelvet, feljegyzéseket az objektum-orientáció megközelítéséről és néhány forrást, amelyek segítenek az OOP-hoz való bejutáshoz ezzel a nyelvvel.

Az internet tele van esszékkel, amelyek az X nyelvre és az Y nyelvre vonatkoznak – ezek többsége csak megkarcolja a felületet. Javasoljuk, hogy nézd meg ezt az általánosabb programozási nyelvi összehasonlítást. Ez az átgondolt elemzés számos népszerű OO-nyelv konkrét részleteit vizsgálja, megvitatva, hogy az OO-koncepciók hogyan valósulnak meg mindegyikben.

C alapú nyelvek

A C nem objektum-orientált nyelv. Legalább azonban lehetséges, hogy OO-kódot írjon bele:

  • Objektum-orientált programozás az ANSI-C-vel (PDF)
  • Phil Útmutató az objektum-orientált ANSI C-hez
  • Objektum-orientált programozás C-ben.

Az ezekben a könyvekben és cikkekben ismertetett technikák egyike sem különösebben robusztus vagy könnyen kezelhető nem trivia programok esetében. Ahelyett, hogy megpróbálnánk a C-t a határainak meghosszabbítani, három közvetlen C leszármazott van, amelyek tárgy-orientált nyelvi eszközöket tartalmaznak.

C++

A C ++ multi-paradigma, ami azt jelenti, hogy számos különféle programozási módszert (PDF) támogat, beleértve az objektum-orientációt is. Ez a C alapú, és kifejezetten úgy fejlesztették ki, hogy támogassa az OOP osztályok koncepcióját.

  • Objektum-orientált programozás (OOP) C ++-ban: nagyszerű bevezető útmutató a számítógépes tudományok professzorától
  • Objektum-orientált programozás tanulása C ++ formátumban: nagy, többrészes oktatóanyag az OOP-ról
  • C ++ oktatóprogram 20-1 – Osztályok és objektum-orientált programozás: egy nagyobb videó sorozat része a C ++-on, ez a munkamenet megkezdi az OOP koncepciók lefedettségét
  • Bevezetés az objektum-orientált programozásba a C használatával++
  • Objektum-orientált programozás C-ben++.

C #

A C # („C sharp”) egy másik C származék, amelyet elsősorban a C ++ javításához terveztek a Microsoft .NET-keretrendszerében való felhasználáshoz..

  • Objektum-orientált programozás C # -ben
  • C # Objektum-orientált programozási alap (előre)
  • C # OOPS fogalmak (videó)
  • Objektum-orientált programozási alapok C # -ben: prémium bemutató a PLuralsight-tól (ingyenes próbaverzió elérhető)
  • Bevezetés a C # objektum-orientált programozási koncepcióiba: a C # absztrakciójára, beágyazására, öröklésére és polimorfizmusára terjed ki.
  • A 10 legfontosabb OOPS-koncepció C # .NET-ben példákkal: nagyszerű gyors útmutató a C # -ba való orientálódáshoz, ha már érti az OOP fogalmait
  • C # tanulás: Objektum-orientált programozási nyelv elsajátítása: magas szintű áttekintés a C # és az OOP tanulásának a legjobb megközelítéséről
  • Kezdet C # Objektum-orientált programozás.

Objective-C

Az Objective-C-t körülbelül ugyanabban az időben fejlesztették ki, mint a C ++, lényegében ugyanazzal a céllal – az OOP képességek hozzáadásával a C.-ra. Az Objective-C-t valójában csak az Apple OS X és iOS kakaófejlesztési platformjában és a GNUstep-ben használják. Nyílt forráskódú alternatíva.

  • Objektum-orientált programozás az Objective-C segítségével
  • Bevezetés az objektum-orientált tervezésbe
  • Objektum-orientált programozás és az Objective-C nyelv (PDF)
  • Bevezetés az objektum-orientált programozáshoz.

Common Lisp

A Lisp alapvetően nem objektum-orientált. Azonban a Common Lisp, az egyik népszerű Lisp dialektus, magában foglalja a Common Lisp Object System (CLOS) rendszert, amely OOP funkciókat biztosít..

A CLOS-ban megvalósított, az objektum-orientáció megközelítése radikálisan eltér az OO más nyelveken történő kezelésének módjától. Ez azt jelenti, hogy a CLOS nem remek hely a kezdéshez, ha általában meg akar tanulni az OO-t, vagy más nyelveken alkalmazza az OO-t. Ha azonban Lispbe kerül, a CLOS nagyon fontos. Ezen felül, ha különösen érdekesnek találja az OOP-t, akkor élvezheti a CLOS tanulmányozását, hogy az OO koncepcióit más fényben láthassa.

  • A CLOS alapjai
  • Rövid útmutató a CLOS-hoz
  • A közös Lisp objektumrendszer: áttekintés (PDF)
  • CLOS: Objektum-orientált és funkcionális programozás integrálása (PDF)
  • Objektum-orientált programozás a COMMON LISP-ben: Programozói útmutató a CLOS-hoz.

Erlang

Néhány hagyományos szempont szerint az Erlang nem objektum-orientált nyelv. Van azonban egy lenyűgöző kisebbségi vélemény, amely ellentétes, és támogatói azt állítják, hogy az Erlang a legtöbb objektum-orientált nyelv, vagy akár az Erlang az egyetlen valódi objektum-orientált nyelv.

Ennek nagy része az Elixirre is vonatkozik. Másrészt talán ez csak OO-stílus, nem igaz OO.

F #

Az F # („F sharp”) multi-paradigma nyelv. Magja valóban funkcionális programozás, de magában foglalja az OO támogatását és a két különféle programozási megközelítés összeegyeztetésére tett kísérletet.

  • Az „Objektum-orientált programozás F # -ben” sorozat
  • F # Gyors útmutatók: Objektum-orientált programozás
  • F # áttekintés – imperatív és objektum-orientált programozás
  • Objektum-orientált F # – Osztályok létrehozása
  • Objektum-orientált programozás F # -ben (PDF)
  • OOP osztályok nélkül az F # -ben.

Fortran

A Fortran a legrégebbi programozási nyelv, amelyet még mindig használnak. Amikor az 1950-es években találták ki, nem volt olyan, mint a tárgyak orientálása. A Fortran 2003-ban a nyelv kiadásával egyértelmű OOP támogatást kapott. Lehetséges volt néhány alapvető OOP-koncepció megvalósítása a nyelv korábbi verzióiban is.

  • OOP Fortranban, mielőtt a Fortran objektumorientált volt:
    • Álom objektum-orientált stílus a Fortran 90-ben
    • Objektum-orientált programozás a Fortran 90-en keresztül (PDF)
    • Bevezetés az objektumorientált koncepciókba a Fortran90 használatával.
  • OOP Fortranban hivatalos támogatással:
    • Objektum-orientált programozás a Fortran 2003-ban
    • Modern Fortran a gyakorlatban
    • TUDOMÁNYOS PROGRAMOZÁS FORTRAN 2003-ban: Útmutató objektum-orientált programozáshoz (PDF).

Megy

A Go egy viszonylag új nyelv, amelyet a Google 2007-ben fejlesztett ki. Sok vita folyik arról, hogy a Go objektum-orientált-e vagy sem.

A Go-ban nincs semmi, amit „objektumnak” vagy „osztálynak” neveznek, de van hasonló analóg struktúrája. Bizonyos szempontból tehát a Go objektumorientáltként gondolkodhat.

Valójában sok ember azt gondolja, hogy a Go OO:

  • Go Object-Oriented Design
  • Objektum-orientált programozás Go-ban
  • Objektum-orientált nyelvtanulók Go
  • Keressen objektum-orientált programozókat vagy objektum-orientált programozást objektumok nélkül (videó)
  • Az objektum-orientált programozási jóság összefoglalása a fájdalom nélkül.

Jáva

A Java a földről felfelé épült, hogy objektum-orientált legyen. Íme néhány nagyszerű forrás a Java használatához:

  • Objektum-orientált rendszertervezés: a Stanford’s CS108 weboldala, amelyhez linkek vannak a kódhoz, a kiadványokhoz, az előadási diákhoz és nagyjából mindent, amire szüksége van a kurzuson való egyedülálló munkavégzéshez
  • A Java oktatóprogram: Objektum-orientált programozási koncepciók
  • Java programozási bemutató Objektum-orientált programozás (OOP) alapjai
  • Objektum-orientált programozási koncepciók (hat videosorozat)
  • Objektum-orientált programozás – Java bemutató
  • Java alapok bemutatója: Objektum-orientált programozás Java-ban
  • Objektum-orientált programozás Java-ban
  • Objektum-orientált programozási alapok a Java használatával (PDF).

JavaScript

Sokan nem gondolják, hogy a JavaScript valóban objektum-orientált. De nagyon sokan azt gondolják, hogy az biztos.

Úgy gondoljuk, hogy a mi feladatunk az, hogy segítsünk megtalálni hasznos forrásokat, és ne vegyen részt az igénytelen vitákban. Tehát itt van néhány OOP-forrás a JavaScript számára:

  • Bevezetés az objektum-orientált JavaScript-be (Mozilla Developer Network)
  • JavaScript: A világ leginkább félreértett programozási nyelve
  • OOP JavaScript: Amit tudnod kell
  • Objektum-orientált JavaScript: Méretezhető, újrafelhasználható, jó minőségű JavaScript alkalmazások és könyvtárak létrehozása
  • Objektum-orientált JavaScript alapelvei
  • Objektum-orientált JavaScript (videó).

PHP

A PHP a 4. verzióig nem támogatta még az OO alapvető fogalmait sem, és a PHP5-ig nem támogatta a teljes objektum-orientációt..

  • Objektum-orientált PHP kezdőknek
  • Objektum-orientált PHP az abszolút kezdők számára
  • Objektum-orientált programozás alapelvei a PHP-ben
  • Objektum-orientált PHP (videó)
  • Objektum-orientált PHP: Fogalmak, technikák és kód.

Piton

A Python-kódoknak nem kell objektum-orientáltnak lenniük, de a nyelv teljes mértékben támogatja azt. Nézze meg ezeket az erőforrásokat:

  • Objektum-orientált programozás: bevezetés az OOP-hoz Python útján, az MIT nyitott tanfolyamából
  • Objektum-orientált programozás Pythonban
  • Javítsd a Python-ot: Python-osztályok és objektum-orientált programozás
  • Python pálya: Objektum-orientált programozás
  • Python 3 objektum-orientált programozás.

Rubin

A Ruby-ban minden objektum, még „primitív” adattípusok is, például karakterláncok és egész számok. Két egész számot ad hozzá az egyik összeadási módszer meghívásával; Megtalálja a húr hosszát, ha meghívja a hossz metódusát.

  • Ruby felhasználói útmutató: Objektum-orientált gondolkodás
  • Ruby modul: A Ruby programozási nyelv egyik legfontosabb funkciója
  • Gyakorlati objektum-orientált formatervezés Ruby-ban.

Csevej

A Smalltalk valószínűleg a legbefolyásosabb tárgy-orientált nyelv, amelynek mély hatása volt a később megjelenő nyelvekre. Ennek eredményeként jó, ha legalább valamilyen módon megismerjük. Ezek az erőforrások segítik Önt:

  • Objektum-orientált programozás a Smalltalk segítségével (PDF)
  • Smalltalk és objektum-orientáció: Bevezetés (PDF)
  • Smalltalk: A nyelv használatának megkezdése (videó)
  • A Smalltalk programozása – Objektum-orientáció a kezdetektől: Bevezetés a programozás alapelveibe.

Másrészről…

Ha szeretne egy lekerekített fejlesztő lenni, fontos, hogy megértsük a jó és a rossz fogalmakat egyaránt. Annak ellenére, hogy az objektum-orientáció vált a programozás megértésének domináns módjává, legitim kritikákat kell tenni – mind a gondolatokat, mind a körülvevő hype kultúrát.

Íme egy maroknyi forrás, amely az ellenérvet nyújtja az OOP-nak:

  • Az objektum-orientált programozás drága katasztrófa, amelynek véget kell vetni
  • Az objektum-orientált programozás belsőleg káros
  • Objektum-orientált programozás: Katasztrófa történet.

Objektum-orientált programozás ma

Noha az objektum-orientált programozás továbbra is fontos módszertana a számítógépes programozásban, ez már nem tartja helyét az ipari szabványnak a „jó szoftverfejlesztéshez”. Más paradigmák, különösen a funkcionális programozás kerülnek előtérbe, valamint az őket támogató új nyelvek. Időközben az objektum-orientált programozás, valamint a tervezési minták mozgásának kritikája egyre növekszik.

Ennek ellenére a mai napig írt szoftver nagy része objektum-orientált. Ha valamelyik általános objektum-orientált nyelven dolgozik, akkor jól meg kell értenie az alapvető objektum-orientált fogalmakat.

Több érdekes cucc

További programozási útmutatókat, oktatóanyagokat és infographikákat tartalmaz a kódoláshoz és a fejlesztéshez:

  • C ++ fejlesztői források: A C ++ -ról szóló információk mellett további információ található az objektum-orientált programozásról.
  • Bevezetés a Linux programozáshoz és források: Noha nem kifejezetten az objektum-orientált programozásról szól, a Linux programozás sok szintjének ez a megbeszélése energiát nyújt Önnek..
  • INTERCAL Bevezetés és források: Ha keményen találja az objektum-orientált programozást, az INTERCAL tanulmányozása megkönnyíti. Ez a paródia (vagy vicc) nyelv annyira bonyolult és szörnyű, hogy még a polimorfizmus legmélyebb megbeszélése is kellemesnek tűnik..

Milyen kódot kell megtanulnia?

Zavaros abban, hogy milyen programozási nyelvet kell megtanulnia a kódoláshoz? Nézze meg infográfunkat, Milyen kódot kell megtanulnia? Nemcsak a nyelvek különféle aspektusait tárgyalja, hanem olyan fontos kérdéseket is megválaszol, mint például: “Mennyit fogok pénzt keresni a Java megélhetéséhez?”

Milyen kódot kell megtanulnia?
Milyen kódot kell megtanulnia?

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