Mik az interfészek php

Ebben a cikkben megpróbálom röviden elmagyarázni, hogy milyen esetekben szükséges interfészeken PHP és ad példát a gyakorlati haszna.

Interfészek kell állapítani, hogy mikor van egy általános probléma, és számos lehetőséget annak alkalmazott megoldások, a helyzettől függően. Például a probléma az adatok megtartása, valamint az adatok biztonsági megoldásokat:






  • az adatbázisba;
  • egy fájlba;
  • Munkamenetenként stb ..

Ebben az esetben van értelme, hogy hozzon létre egy közös interfészt opcionális módszerekkel, mint insert () - a közvetlen adatok tárolására. Attól függően, hogy az adatokat tároló helyek, minden osztály fogja végrehajtani az adatok tárolása, hanem az úgynevezett ez a módszer mindig helyezze (), ha írunk be a felületet.
Miután létrehozta a kívánt felületet létrehozni több szolgáltatási osztály végrehajtó (végrehajtási).


Kezdetnek, nézzük meg egy példa nélkül a felületen.

Ha létre egy alkalmazást szerint a PFSZ, szükség van külön a logika a funkcionális, megtörve feladatokat külön osztályokba.
Tegyük fel, hogy van 3 osztályban:
- Dátum (általános osztályt, hogy megkapja az adatokat, és használja a helper osztály módszerek (szolgáltatások) való megőrzése);
- saveDb (osztály tárolja az adatokat az adatbázis);
- saveFile (osztály tárolja az adatokat a fájlt)
Ebben a példában az adattárolásra, az eljárás időpontját (Class Date), érvként, meg kell adnia egy példányát egy adott osztály - saveDb vagy saveFile.

A hátránya ennek a módszernek, hogy az osztály ellenőrzi az adatokat és az osztály-konzerváló adatok erősen kapcsolódik. A példában azt kiemelni, hogy az az érv, date () - egy példánya a dolgozó az adatbázisban. Ezután a szükséges módszereket ennek az osztálynak (saveDb) mint insertInto ().
És mi van, ha meg kell menteni az adatok nem szerepel az adatbázisban, és a fájl. Ebben az esetben a teljes eljárás date () meg kell változtatni, mert más osztályok igen eltérő módszereket és nem insertInto () metódus és az egész elvet a többi osztály nagyon különböző lehet. Lehet, hogy lesz még olyan saját validálási és módszer érvényesítse () Dátum osztály felesleges lenne.







De az ilyen esetekben, és használható interfészeket. Segítenek a létrehozása sablon osztályok, hogy fogják használni az alkalmazást, és van egy közös módszer ugyanazt a feladatot, de a maga módján. Felület lehetővé teszi, hogy megértsék a kódot, és könnyen fenntartani azt. Így, ezek segítenek a laza csatolás osztályok között, hogy lehet szemléltetni:


Az én egyszerűsített példa azt mutatja, hogy a felület kötelezi végrehajtási osztályok a betét () metódust. amely (mondjuk) közvetlenül részt vesz adatbeillesztés. És különben is neki, az egyes osztályokat esetleg más szükséges munkamódszereit. Osztályú saveDb. Ez, például, connectDb () módszer. adatbázis létrehozása kapcsolatot. A teszteléshez én üzenetet küld a működési mód insert ().

Így, ha dolgozik, adatok, a kivitelező a kívánt osztály vagy más módszerrel, tudjuk átadni a osztályú szolgáltatást, jelezve, hogy arra utal, hogy egy adott felületet és lehet abban, hogy ugyanazokat a módszereket alkalmazzuk minden osztály ennek a csoportnak. Ezekről módszerekkel (dokumentáció), az úton, közvetlenül is megadható a kódot mellett az érintett felületet módszerek, annál is inkább, hogy sok lesz kevesebb sor, mint a végrehajtási osztályok.

Ebben a példában, ahelyett, attól függően, hogy az osztály (saveDb) átvisszük a függőség interfész Save:

Date osztály kód nem függ egy adott megvalósítója, de csak a felületen. Meg kell jegyezni, hogy ez a példa a minta „függőség injekció”, amely fordítása „függőség injekció”.
A felület biztosítja, hogy az ott meghatározott eljárások minden osztályban, hogy végrehajtja. Ezért sem lehet biztos, hogy a hívás insert () metódus:

vezetnek adatmegőrzési. Ebben a tárolási hely végrehajtásától függ a módszer az egyes osztályok. Tehát betét eljárás (class saveDb) az adatbázisát, insert () metódus saveFile ment egy fájlt, és így tovább. Futtatni a kódot ebben a példában, és látni, hogy a Date osztály dolgozott együtt minden osztály mentése felület és ugyanabban az időben, a dátum osztálya a kód nem kell változtatni.

Szüksége van egy honlap? Szeretné hez együttműködés? Kapcsolat - kapcsolat.

Üdvözöljük az 1. pont - ha az oldal újratöltődik, az azt jelenti pjax nem működik. Próbálja actionSubscription változásokat előidézni, oly módon: public function actionSubscription ()

Törekedett az egész kódot, és nem találja, ahol úgy definiáljuk, hogy az első hívás vezérlő lábléc, fejléc majd, milyen egyértelművé teszik, hogy adjunk szkriptek csatlakozni, és stileymozhet Önnek.

A helyes kijelző az elem telepítéséhez szükséges FlashPlayer, és lehetővé teszi a Java Script a böngészőben.




Kapcsolódó cikkek