Kapszulázáshoz, öröklés, polimorfizmus (alap php - tanulsága természetesen)
Ebben a leírásban, elmondom a három alapvető fogalmak az objektumorientált programozás: kapszulázottságnak, öröklés, polimorfizmus; És tanítani, hogy alkalmazza őket a fejlesztés.
Encapsulation - egy programozási nyelv funkció, amely lehetővé teszi, hogy megszilárdítsa és védi az adatokat és a kódot egy objektumot, és elrejti a tárgy végrehajtása a felhasználó (programozó). Ebben az esetben, a felhasználó számára adott csak a specifikáció (interface) a tárgy.
Más szóval, ha foglalkoznak a jól megtervezett osztály, csak akkor tudjuk használni a módszereket, anélkül, hogy részletezném hogyan működnek és hogyan működnek együtt az osztály területeken. Beszélünk egy olyan helyzetben, ahol dolgozunk egy osztály által kifejlesztett más programozók. Mi csak használja a már megvalósított funkcionalitás.
Itt egy másik példa. Elvekkel, mint a beágyazás elrejti a belső végrehajtási beépített PHP-függvény. Lehet, hogy már ismeri a funkció strpos () a húrok a szabványos PHP könyvtár. Ez a függvény a megadott karakterláncot karaktersorozatot, és visszaadja a helyzete egy számot. Ha belegondolsz végrehajtásának ezt a funkciót, akkor feltételezhetjük, hogy szükségünk lesz, hogy végigjárjuk minden karaktert a sor elejére egy meccset a kezdeti karakter a megcélzott szekvencia, és maga az esemény is összehasonlítani a két karakter, és így tovább. D. De nekünk, mint a programozók nem kell gondolni ezt, és ásni a bonyolult a végrehajtása ezt a funkciót. Elég, ha tudja a paramétereket. hogy tart, és a formátumot a visszatérési érték. strpos () függvény magába meghatározásának problémájára részsztring kínál nekünk csak a külső felületet használni.
Hasonlóképpen, megfelelően tervezett osztályok elrejteni a belső megvalósítása, amely egy felületet a külső felhasználók formájában egy sor módszert.
A PHP nyelv tokozás koncepció formájában valósul meg a speciális hozzáférési módosítók mezők és módszerek egy osztály. Ez lesz szó tovább.
Öröklési - mechanizmust az objektum-orientált programozás, amely lehetővé teszi, hogy egy új osztályát írják, a meglévő (szülő), valamint a tulajdonságok és a funkcionalitás a szülő osztály kölcsönzött egy új osztályt.
Adjunk példát öröklése életben. Mint osztály, akkor egy geometriai alakzat. Ugyanakkor, nem pontosan mely szám legyen. Mik a tulajdonságai alakja lehet megkülönböztetni? Tegyük fel, hogy van egy színt. Ezután az osztály, amely leírja a szám megfelelő legyen string típusú mező határozza meg a színét egy alak. Szintén bármilyen geometriai forma van egy területe. Hagyja, hogy a terület az ingatlan a második osztályban.
Most tegyük fel, hogy a program kell dolgozni konkrét geometriai formák. terek és háromszögek. beleértve azok geometriai sík pozícióját. Nyilvánvaló, hogy a leírás háromszögek és négyzetek egy osztály szám nem elegendő, mert nem tárolja a geometriai helyzetét. Ezért be kell vezetnünk két további osztály terek és a háromszög. Ebben az esetben tegyük fel, hogy a mi programunk is szükség van a szín és a négyzet alakú. Ez a helyzet csak használatát igényli örökséget. Mivel minden téren és a háromszög a programban nyilvánvalóan ez a számadat. E. Van a szín és a környéken. Ugyanakkor, minden egyes darab több adatra van szükségünk (amellett, hogy a szín és a tér) annak leírását, amely megoldott megadásával további két osztályt a terek és a háromszög. amelyek örökölt az osztály szám.
Ez azt jelenti, hogy az osztályban terek és háromszögek, akkor nem kell újra beállítani a mező színe és a tér. Elég annyit mondani, hogy ezek az osztályok örökölt osztály alakja.
Ez a kód határozza meg az osztály, mint NewsArticle utódja cikk. Cikk osztály, viszont a szülő NewsArticle osztályban. Ez azt jelenti, hogy a mezők és osztály cikk módszerek is jelen lesz a NewsArticle osztályban. és nem kell, hogy újradefiniálja azokat.
Használata öröklés, meg lehet építeni egy hierarchiát osztályok, örökölte az egyik a másiktól. Ugyanakkor, csak az egyik szülő lehet bármilyen osztály:
Néha szükség lehet, hogy újból az egyik módszer a szülő osztályban. Nézzük ismét ad a végrehajtási osztály cikk:
A fenti kód az strftime () függvényt. amely lehetővé teszi, hogy megjelenjen a dátum egy kényelmes formában. Ahhoz, hogy jobban megértsük a kódot, olvassa el a leírás ennek a funkciónak a kézikönyvben. Számunkra fontos, hogy figyeljen arra, amit NewsArticle osztályban. cikként. határozza meg a módszer nézet (). Ennek megfelelően minden tárgyat az ebbe az osztályba fogja használni a nézet () metódust. NewsArticle bejelentés osztályban. cikk helyett.
Lehet, hogy miért még mindig fontos, hogy felülírják a módszerek helyett olyan új technikák osztályok leszármazottai? Annak megértése, ez jön össze, hogy értik a következő fontos OOP fogalmak.
A polimorfizmus - felcserélhetőségére tárgyak ugyanazon a felületen.
Nézzük a következő példát, amelyek képet adnak a lényege polimorfizmus:
Ez a sor hivatkoznak módszer hívás () a objektumosztály A. Amint az az függvényhívás () hivatkoznak osztály A. Vizsgálati () módszer. Teljesíti módszer Test () A. osztályú objektumot, és megjeleníti a szöveg: „Ez egy A osztályú”.
Ebben a sorban, van egy módszer hívást Test () az objektum osztály B. Test () metódus a B osztályú megjeleníti a szöveg: „Ez egy B osztályú”.
Végül az utolsó sorban egy hívás osztály Hívás () az osztály az objektum B. azonban a végrehajtás a B osztály, nem fogjuk látni egy ilyen módszer, ami azt jelenti, hogy örököl osztály A. t B osztályú - .. leszármazottja osztály A. amit látunk a végrehajtását a módszer hívás () osztály A. be az alábbi kódot:
Hívás () metódus meghívja az eljárást Test () az objektum, ami. Ez azt jelenti, hogy megfelel Test () módszer az objektum B osztály Ez magyarázza az eredmény kiadott a képernyőn.
Ez az elv a polimorfizmus. Osztályok lehet ugyanazokat a módszereket. különböző, de azok végrehajtását. A fejlődő a script kódot, akkor csak azt tudják, az általános leírás az osztály csoportja a módszerek, de nincs ötlete, hogy egy példányát az osztály kerül felhasználásra egy adott időpontban.
A fogalmak tokozás, az öröklés és a polimorfizmus lehet nevezni három pillére a PFSZ. Megértése és gondos elveinek alkalmazása ezeket a fogalmakat - a siker a fejlődés a PFSZ-szel.