Hogyan lehet a kódot olvashatóbbá tenni absztrakcióval

Amíg megtanulod a programozást, gyakran előfordul, hogy az embereket absztrakciónak nevezik . Elkezdi kérdezni magát: mi az absztrakció és miért fontos?

Ebben a cikkben elmagyarázom neked az absztrakció fogalmát és annak használatát, és néhány példát megadok a Pythonban.

Első dolgok először: Mi az absztrakció?

Programozói alapítványom tanára szerint:

„Az absztrakció az entitás egyszerűsített specifikációja”

Ez azt jelenti, hogy az absztrakció egy számítási entitás ábrázolása. Ez egyfajta módja annak, hogy elrejtse a konkrét információkat, és csak a legrelevánsabb információkat adja át a programozónak.

Az absztrakció szintén szituációs: mindegyik megfelel egy igénynek, így a jó absztrakciót társíthatja az adott entitás adott felhasználásához.

Vessünk egy pillantást a bináris keresési fákra (ha nem tudod, mik ezek, nézd meg a róluk szóló cikkemet). Meghatározhatunk egy csomópontot entitásként a következő tulajdonságokkal:

A Node has: Node * left Node * right int val

Itt azt mondanánk, hogy egy csomópontnak két mutatója van más csomópontokra és egy int értéke. De mennyire hasznos ez valakinek egy függvényhez képest, insert(node, value)és csak helyesen illesztené be? Így csak fel kellene hívnia, és kész. Egyszerű.

Így hasznos az absztrakció. A programjaiban használt összes könyvtár használja, így valóban egyszerűvé válik egy könyvtár használata.

Oké, de mennyire jó az adat absztrakció?

Az adatok absztrakciója lehetővé teszi számunkra, hogy egy összetett adatstruktúrát egyszerűvé és könnyen használhatóvá alakítsunk. Ennek az a következménye, hogy egy magas szintű kódösszetételt tartalmazó program átalakítható olyanra, amely közel áll az angol nyelvhez (nevezzük magas szintű kódnak ).

Az adattípus 2 dologból áll: tulajdonságokból és módszerekből, amelyek lehetnek nyilvánosak vagy privátok. Az adatok felhasználásának egyetlen módja a nyilvános. Fel kell tüntetniük azokat a funkciókat, amelyekre az adatoknak képesnek kell lenniük.

Mi történik akkor, ha az absztrakt kódot használja? Nem számít, hogy a belső tulajdonságai változnak-e, amíg a módszerek továbbra is ugyanazokat az érveket kapják, és ugyanazt csinálják, mint korábban. Ha valami nincs rendben, csak egyszer kell megváltoztatnia.

Válasszunk ki egy példát, és dolgozzunk vele: Vektorok

Feltételezzük, hogy a vektorok:

  • 2 értékű objektumok, x és y
  • x és y mindkettő nem negatív szám

Ily módon a vektorok valami (2, 5), (0, 19) stb.

Az absztrakciók létrehozásának jó módja az Objektumok használata. Információk elrejtését és reprezentációs névtelenségét biztosítják. Ez lehetővé teszi a felhasználó számára, hogy megtartsa az absztrakciót.

Kezdjük az osztályunk definiálásával (nem fogom meghatározni a típusellenőrzést a kód tisztább megőrzése érdekében, de meg kell tennie):

Tehát több módszert definiáltunk, és sok dolgunk van most, amit megtehetünk:

2D-s vektor esetében ez egyszerűnek tűnhet. Ha ezt nagyobb és összetettebb programokban kezdi el megvalósítani, akkor észreveszi, hogy ezek nagyon hasznosak.

Készítsünk most egy másik megvalósítást az osztályvektorról (változtassuk meg a belső állapotát) valamire ugyanazokkal a módszerekkel, de más kóddal:

Ha ugyanazokat a parancsokat futtatjuk, a kimenet továbbra is ugyanaz lesz. Ennek oka az általunk használt absztrakció, még akkor is, ha a kód teljesen megváltozott. Ezért nagyon fontos az absztrakció használata. Ez lehetővé teszi a kód rugalmasságát és a mások kódjának függetlenségét.

Használjunk most egy másik példát, ezúttal 2 osztállyal: Város és Polgár.

És a következőket kapjuk:

### OUTPUT ###City population is 1000, random: Citizen is a female 20 years oldCity population is 1000, random: Citizen is a male 74 years old

De képzelje el most, hogy meg akarjuk változtatni a Citizen osztály működését. Ha nem használnánk az absztrakciót, akkor a teljes kódot meg kellene változtatnunk! Ez sok munka!

Ha újra futtatjuk a kódot, tudjuk, hogy működik, bár az eredmények eltérőek. Mint látható, egy egész osztályt váltottunk, de minden működik!

Csomagolás

Eleinte úgy tűnhet, hogy nincs rá szükség. Minél alacsonyabb a használt nyelv szintje, annál fontosabb az absztrakció használata. Ezzel elkerülhető a bonyolult kód és valóban egyszerű az egész. Az olyan nyelvekben, mint a C, ez igazán hasznos. Ha kételkedik benne, ellenőrizze ezt a projektet, ahol kivontam az absztrakciót, és nagyon könnyű volt megérteni, mi folyik itt.

Ha bármilyen kérdése van, vagy valami olyan dolgot szeretne beszélni vagy megvitatni, hagyjon megjegyzést alább!

Ne felejtsd el követni az Instagramon és a Twitteren!