Design Patterns kezdőknek

Design Patterns kezdőknek

Ha valaha is azon, hogy mi van a tervezési minták, akkor várjuk. Ebben a cikkben, elmondom, hogy mi ez, miért van szükségük, hogyan kell használni őket, és ad példát a legáltalánosabb sablonok PHP.

Mik tervezési minták?

tervezési minták - jól bevált és használatra kész megoldásokat gyakran merülnek fel a mindennapi programozási feladatokat. Ez nem egy osztály vagy könyvtárat is csatlakozik a projekthez, ez valami más. Template design alkalmas a feladat, végre minden esetben. Ezen túlmenően, ez nem függ a programozási nyelv. Egy jó sablon könnyen megvalósítható a legtöbb, ha nem az összes nyelven, attól függően, hogy a kifejezési nyelvet. Azonban meg kell jegyezni, hogy ez a minta alkalmaznak helytelenül vagy nem megfelelő feladat, hozhat egy csomó problémát. Azonban a helyes alkalmazását a sablon segít megoldani a problémát gyorsan és egyszerűen.

Háromféle sablon:

Strukturális sablonok közötti kapcsolat meghatározása az osztályok és objektumok, amely lehetővé teszi számukra, hogy működjenek együtt.

Generálása sablonok inicializálás mechanizmusokat, amely lehetővé teszi, hogy hozzon létre objektumok kényelmes módja.

Viselkedési mintákat használnak, hogy egyszerűsítse a kölcsönhatás szervezetek.

Miért Design Patterns?

mintázat, lényegét tekintve, egy tudatos döntés a probléma. Ha találsz egy jól ismert probléma, hogy miért nem használja a kész megoldás bizonyított tapasztalat?

Képzeljük el, hogy szükség van, hogy összekapcsolják a két osztályt, hogy a különböző műveletek végrehajtásához, a helyzettől függően. Ezek az osztályok erősen használják a jelenlegi rendszer, amely nem teszi lehetővé, hogy távolítsa el az egyiket és működését a második. Ezen túlmenően, a kód változás lenne szükség kiterjedt tesztelés, mert egy ilyen újratervezés vezet elkerülhetetlen hibákat. Ehelyett, akkor végrehajtja a „stratégia” sablonok és „adapter”, és használja őket, hogy megoldja a problémát.

Egyszerű, nem? Vessünk egy közelebbi pillantást a mintát „stratégia”.

Sablon „stratégia”

Design Patterns kezdőknek

Stratégia - egy viselkedési minta, amely lehetővé teszi, hogy válassza ki a program viselkedésének a végrehajtás során, attól függően, hogy az összefüggésben, kapszulázó számos algoritmus különféle kategóriákban.

A fenti példában, a választott stratégia alapja a változó értéke $ összefüggésben. amely abban az időben a objektum létrehozása. Ha az érték „context_for_class_one”. A program használata class_one osztályban. És fordítva.

Rendben, de hol lehet használni?

Design Patterns kezdőknek

Jellemzően a „stratégia” minta magában kapszulázó algoritmusok osztályokba, de ebben az esetben is. Ne feledje, hogy nem köteles követni a mintát szó. Bármilyen változatok megengedhetők, ha azok a probléma megoldására, és megfelel a koncepció.

Template "adapter"

Design Patterns kezdőknek

Adapter - a strukturális sablon, amely lehetővé teszi, hogy egy osztályt, amely megvalósítja a szükséges funkciókat, de a rossz felület.

Azt is lehetővé teszi, hogy változtatni bemenet kompatibilitását a belső osztály felületen.

Hogyan kell használni?

Design Patterns kezdőknek

Egy másik neve az illesztő - „Wrap”. Ő „pakolások” körül az új interfész osztály használni. A klasszikus példa: meg kell hozzon létre egy osztályt alá modellt, az osztályok az objektumok az adatbázisban. Ahelyett, hogy elérve a táblázatos osztályok közvetlenül és hívja a módszerek egy időben, akkor körülvenni a hívásokat ezeket a módszereket az egyik módszer az adaptert. Ez nem csak újra használható műveletek, hanem takarít meg az állandó újraírás egy csomó kód, ha kell elvégezni ugyanazokat a műveleteket máshol.

Hasonlítsa össze a két példát.

adapter nélkül

Most már tudjuk használni a számla osztály minden egyes alkalommal, sőt, mi is hozzá az extra funkciókat.

Template „gyári” módszer

Design Patterns kezdőknek

Factory - létrehozunk egy minta, amely egy osztály egy módszert, mellyel különböző tárgyakat.

A fő célja ennek a sablon - magukba létrehozásának folyamatát különböző osztályok ugyanazt a funkciót, amely attól függően, a továbbított keretében visszatér a kívánt objektumot.

Hogyan kell használni?

Design Patterns kezdőknek

A gyár általában létrehozásához használt különböző kiviteli alakjai az alap osztály. Tegyük fel, hogy van egy osztály a gombok - Button - és a három lehetőség közül - ImageButton. InputButton és FlashButton. Segítségével a gyár hozhat létre a különböző gombokat, a helyzettől függően.

Először létrehozunk három osztályba:

A kimenet elvileg minden típusú HTML gomb. Tehát megkaptuk a lehetőséget, hogy jelezze, milyen típusú gomb akarunk eljutni, és újra kódot.

„Dekoratőr” Template

Design Patterns kezdőknek

Dekoratőr - szerkezeti sablon, amely lehetővé teszi, hogy új viselkedést tárgy futási időben, a helyzettől függően.

A cél - a expanziós viselkedését egy adott objektumot anélkül, hogy változtatni az alap osztály viselkedését. Ez lehetővé teszi, hogy több festő ugyanabban az időben. Ez a sablon - alternatívát örökséget. Ellentétben öröklés Dekoratőr hozzáteszi viselkedés futásidőben.

Ahhoz, hogy hajtsák végre a dekoratőr van szükség:

  1. Öröklése egy osztály-dekoratőr a bázis.
  2. Add területen való hivatkozással, hogy az alap osztály a lakberendező.
  3. Pass utalás a díszített tárgy egy lakberendező tervező.
  4. Átirányítás módszer a dekoratőr a díszített tárgy.
  5. Felülbírálása módszerek dekoratőr, akinek a viselkedése változtatni kell.

Hogyan kell használni?

Design Patterns kezdőknek

Először is, hogy melyik „készlet” van szükség:

Most lehet írni magát festő: