Kezdőoldal » Számítástechnika » Programozás » Miért szükséges az objektumori...

Miért szükséges az objektumorientáltság?

Figyelt kérdés
Mivel könnyíti meg a programozók életét?
2017. dec. 13. 21:48
1 2 3
 1/25 anonim ***** válasza:
89%

Nem szükséges, csak egy lehetőség, és mostanában éppen elég népszerű.


Az én szememben két hatalmas előnye van:

A magas szintű absztrakció lehetősége. A megfelelően megtervezett osztályokkal nagyon könnyen olvasható kód írható, ami szinte úgy olvasható, sorról sorra, mint egy irodalmi szöveg.

Példaképp némi (hirtelen kitalált) C# kód:

var oldestCustomer = customers.Min(customer => customer.RegistrationDate);

oldestCustomer.BankAccount.Add(new Gift(GiftType.Loyalty, 20.000));

oldestCustomer.BankAccount.Renew(TimeSpan.FromDays(365));

Szerintem az ilyen kód gyönyörű, és könnyen olvasható, értelmezhető.


A másik az enkapszuláció. Hogy el tudunk rejteni olyan dolgokat osztályok mélyére, amik csupán az implementáció részei és egyáltalán nem fontosak a felhasználás szempontjából. Ez is hatalmas mértékben növeli az olvashatóságot. Például a fenti példában ilyen magas szinten engem nem érdekel, hogy az ügyfél bankszámlájában a megtakarítások milyen adatszerkezetben vannak eltárolva. Nem érdekel, hogy az egy láncolt lista, tömb, vagy akár rögtön közvetlenül az adatbázisba tárolódik el. Ezek fontos kérdések, de nem ezen a szinten, nem az üzleti logika szintjén.


A hátránya persze az, hogy jó OOP kódot írni nehéz, és kell hozzá jó pár év tapasztalat, hogy az ember igazán jó legyek benne. Nekem például van jó pár kollégám, aki ugyan Java-ban programoz évek óta, de az OOP konvenció teljes hiánya nélkül. Hatalmas katyvasz is a kódja, hatalmas függvények, 5-10 paraméterrel, teljesen oda nem illő kód részletek.

2017. dec. 13. 22:24
Hasznos számodra ez a válasz?
 2/25 anonim ***** válasza:
25%

1. Nem könnyíti meg a programozó életét. A fejlesztés idejét rövidíti le, ha a program, vagy programrendszer elér egy bonyolultsági szintet. Kis programok esetében az OOP inkább hátrány, de aki OOP-ben nyomul, az úgy fogja lekódolni, mert már megszokta.

2. Ne hallgass az első válaszolóra. Hatalmas kamu amit ír, meg persze, köze nincs a programfejlesztéshez. Kollégái pláne nincsenek, legalábbis programozók.

2017. dec. 13. 22:39
Hasznos számodra ez a válasz?
 3/25 anonim ***** válasza:
31%
Strukturáltá, modulárissá teszi a programot. Növeli az újrafelhasználhatóságot és az átláthatóságot. A különböző láthatóságokkal (private, public stb.) megvéd egy csomó potenciális hibától.
2017. dec. 13. 22:45
Hasznos számodra ez a válasz?
 4/25 anonim ***** válasza:
33%
#2: Pápá
2017. dec. 13. 22:48
Hasznos számodra ez a válasz?
 5/25 anonim ***** válasza:

#1

Grammar nazi ON


OOP konvenció teljes hiányával. ;)


Grammaz nazi OFF


Egyébként egyetértek.

2017. dec. 13. 23:05
Hasznos számodra ez a válasz?
 6/25 anonim ***** válasza:
0%

"Strukturáltá, modulárissá teszi a programot."


Sajnos ez sem igaz. Sőt, éppen az ellenkezője igaz ennek.


Egy egyetemi oktató szavai:


"Az objektumorientált programozást kivettük a bevezető tantervből, mert természetéből adódóan nem moduláris és nem támogatja a párhuzamos feldolgozást, emiatt nem felel meg egy modern tantervnek. Akit mégis érdekel, a másodéves hallgatók részére ajánlunk egy kurzust az objektumorientált tervezésről."

2017. dec. 13. 23:06
Hasznos számodra ez a válasz?
 7/25 anonim ***** válasza:
37%
Olyanok válaszát el se olvasd kedves kérdező, akik még soha nem írtam OOP kódot (30%-os felhasználó), de nagyon másmilyet se.
2017. dec. 13. 23:09
Hasznos számodra ez a válasz?
 8/25 anonim ***** válasza:
0%

"Paul Graham szerint az OOP célja, hogy egyfajta csordaszellemet képezzen, amely megakadályozza, hogy középszerű programozók középszerű cégeiknek túl nagy károkat okozzanak. Mindezt annak az árán, hogy cserébe lelassítja azoknak a programozóknak a munkáját, akik jobb vagy kompaktabb technikákat is ismernek.


Richard Stallman írta 1995-ben: "Az OOP bevezetése az Emacs-ben nem jár egyértelmű előnyökkel; használtam OOP-t, amikor Lisp számítógépek ablakozó rendszerén dolgoztam, és nem értek egyet azzal az állítással, hogy ez a programozásnak egy magasabb szintje lenne.


Joe Armstrong, az Erlang programozási nyelv feltalálója szerint "Az objektumorientált nyelvek problémája, hogy egy implicit környezetet is magukkal hoznak. Egy banánt kértem, de kaptam egy a kezében banánt tartó gorillát meg köré az egész dzsungelt."


Ezzel együtt, én úgy gondolom vannak az oop-nek előnyei, de koránt sem annyi, mint azt sugallják, úgy általában.


Van amit eleve hülyeség OOP-ben írni, van amit meg egyenesen tilos.

2017. dec. 13. 23:13
Hasznos számodra ez a válasz?
 9/25 anonim ***** válasza:
0%

"Hogy el tudunk rejteni olyan dolgokat osztályok mélyére, amik csupán az implementáció részei és egyáltalán nem fontosak a felhasználás szempontjából."


Hát..

Ezen egy hónapig fogok röhögni.


"osztályok mélyére"


Micsoda suttyó duma!! :o))

2017. dec. 13. 23:16
Hasznos számodra ez a válasz?
 10/25 anonim ***** válasza:
44%
#7 de ahogy nézem, legalább a google-t tudja használni, sok kérdezővel ellentétben, meg a Ctrl+C, Ctrl+V kombinációkat is. :D
2017. dec. 13. 23:17
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!