Mi az objektumorientált programozás lényege?
Egy pakli kártya.
Az anyag, a méret ugyanaz, még a hátoldal is. Akkor az ehhez írt osztállyal van egy alapsablonod, amit felhasználhatsz, mert a fő tulajdonságok megegyeznek.
Ha kell bármilyen objektum, ami többszörözést igényel, akkor van értelme az OOP-nek. Az OOP másik érdeme az egységbe zárás, azaz, adott adatmodellhez kapcsolható a modellen értelmezhető függvények (végrehajtható műveletek) listája, menedzselhetősége (private, public, protected).
Ez az abszolút alap, amit aztán lehet púpozni.
A dolog lényege, hogy OO paradigma esetén nehezebb beleveszni egy sok százezer, millió soros projektbe, meg fejleszteni, áttervezni, karbantartani is könnyebb. Amúgy egy halom szar az egész.
Az OOP az olyan, mint egy kalapács. Egyszer megtanulod használni, utána mindent szögnek nézel.
Nézem a minap a főnököm kódjait, egyből láttam rajta, hogy valaha Java programozó volt (Python scriptet programozunk egyébként). Mindent osztályokba csomagol (tök feleslegesen) stb. Gyakorlatilag Javául programoz Pythonban is (még egyszer, adott esetben tök fölöslegesen).
Na kb. ezt értik OOP alatt, hogy ami olyan, mint a Java, az az OOP. Ha nem Java, akkor addig erőszakoljuk a nyelvet, amíg Javául nem néz ki.
"Gyakorlatilag Javául programoz Pythonban is (még egyszer, adott esetben tök fölöslegesen)."
Látatlanban nem tudom megmondani hogy feleslegesen vagy sem de azért az OOP-nak vannak olyan előnyei pl: design patternek megfelelő implementálása amivel igen hatékonnyá tudja tenni a kódot. Szintén ha microservice alapú fejlesztést veszi figyelembe és strukturálja a kódot komponensek szerint nem egy monolitikus okádékot ír. Ez nehezen felfogható közgázos és egyéb hitvány területekről érkezett data scientisteknek mivel nekik annyiban merül ki a programozás tudásuk hogy importáljanak be egy könyvtárat és alkalmazzák aztán ők már programozói tudással rendelkeznek. Attól hogy nem látod valaminek az értelmét nem feltétlenül rossz amit csinál. Azért feltételezem hogy egy java programozói múlttal rendelkező fejlesztőben van annyi készség hogy felismerje mikor szükséges osztályokat implementálni és mikor hatékonyabb anélkül megoldani a feladatot. Gondolom nem ész nélkül elkezdi gépelni hogy class XY csak hogy javásan nézzen ki...
Inkább arról van szó, hogy minden komplexebb szoftver objektumorientált. Azért nincsenek "előnyei", mert nincs mihez képest. Az objektumorientált programozás arról szól, hogy ha megírtál valamit, azt mások, másutt is használni tudják, akár a kód ismerete nélkül.
Pl. Egy fájl a Wordben az egy objektum. Bárki, bármit tud rá írni, nem kell tudnia, hogy belülről hogyan épül föl.
18
Én láttam már olyat, pl. C-ben procedurális paradigmát szokták követni
"Miért? Tudsz olyan 1000 sorosnál hosszabb szoftverkódot mondani, ami nem objektumorientált? "
Én zömében ilyeneket írok.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!