tag: oop

03Sep

Strategy pattern, az objektumok lázadása

Minden fejlesztő életében vannak nehéz napok, mikor iOS push notificationt akar megvalósítani C#-al úgy érzi, hogy az általa kreált objektum jónak jó, de mi lenne ha több mindenre lenne jó, anélkül, hogy rommápakolnánk mindenféle plusz metódusokkal? Mi lenne, ha igazából nem is új funkcionalitást akarunk belevinni, csupán a jelenlegi működést akarjuk megváltoztatni, akár futásidőben. Erre és a hasonló kérdésekre kaphatunk választ a pszichológusunknál az alábbi cikkben a strategy pattern által. screen_03

Tovább »

06Jul

Termi(ter)ator 2

A mai téma egy roppant egyszerű tervezési minta lesz, amire - ahogy a későbbiekben kiderül - a 3-31-Leadprogramnyelveink többségében már példát is találunk. Ha valaha volt már dolgod valamilyen adatbázissal (amit erősen remélek), legyen az mongo vagy épp SQL, akkor nagy az esély, hogy tömbökön másztál végig, mikor a lekérések eredményeit jelenítetted meg/végeztél vele műveletet. A végigjárásra a foreach parancsot használtad, amiről nem is sejtenéd, hogy mennyi köze lesz a mai témához.

Tovább »

17May

Javascript O(O)P

A webfejlesztésnek, akár akarjuk, akár nem, bizony szerves részét képezi a frontend, így az életutunkbizony keresztezni fogja némi javascript, kivéve, ha dedikáltan backendesek vagyunk.dHCqj

Tovább »

16Feb

Builder Pattern és a 7 hardveres

Mai cikkemben a Builder Pattern kerül terítékre, hogy egy újabbat leleplezzünk a létrehozási minták közül. Mielőtt azonban beleugranánk abba, hogy mit is csinálunk ezen mintában, előtte valamit át kell beszélnünk, ami az objektumaink interfészével és működésével kapcsolatos.inception-trailer-movie-leonardo-de-caprio1 Vegyünk egy konkrét példát: Van egy controllerosztályunk, legyen pl. AjaxController, amivel az oldalunkra érkező ajax lekéréseinket szeretnénk kezelni.

Tovább »

24Jan

Tervezési minták - Singleton és a hét törpe

Elérkeztünk hát a tervezési minták taglalásához, így hát vegyük is át pontosan mit is értünk ez alatt.

Az informatikában programtervezési mintáknak (angolul Software Design Patterns) nevezik a gyakran előforduló programozási feladatokra adható általános, újrafelhasználható megoldásokat. Egy programtervezési minta rendszerint egymással együttműködő objektumok és osztályok leírása. - Wikipedia
A tervezési mintákat az informatikába Christopher Alexander építész ötlete nyomán hozta be egy programozókból álló négyes, az ún. Gang of Four a 90-es évek végén. Összegyűjtöttek 23 ilyen gyakran előforduló mintát és a Design Patterns c. könyvben forradalmasították az objektumorientált programozást. Három csoportra tagolhatók, melyek közül mi most az első csoportból emelnénk ki a legegyszerűbbet, mégpedig a singleton-t.

Tovább »

21Jan

OOP's I DI'd it again!, avagy dependency injection praktikák

49734Mielőtt bármibe is belekezdenénk, először is tisztáznunk kell mi is az a dependency injection ( függőség injektálás, magyarul elég morbidul hangzik). Az objektumorientált programozásban az osztályaink egymással közreműködnek és legtöbb osztályunk (nem mind, hiszen az lehetetlen) explicit módon igényli egy másik használatát. Ha használtunk már pl. PDO-t egy osztályunkban, akkor is pont ezt tettük. Anélkül az osztály nélkül a miénk sehogyse működne, függ tőle (depends on). Ha még most sem világos, akkor vegyünk egy konkrét példát.

A programozó, mint osztály

class Programozo {
    public function __construct(KaveAutomata $kaveautomata, Eclipse $ide) {
          $kaveautomata->rugdos()->iszik();
          $ide->ujraInditMertMarBelassult();
    }
}
A fenti példa kicsit unortodoxnak tűnhet, de mindjárt elmagyarázom. A dependency injection egyik legegyszerűbb módja az, hogyha a konstruktoron át, a meghíváskor adjuk át a szükséges osztályok példányait (constructor injection). A programozónak ugye szüksége van egy fejlesztői környezetre, amin dolgozik, valamint esetünkben kávéra, ahhoz hogy működni tudjon. Ha ezek nincsenek meg, akkor bizony nem tudjuk munkára fogni az illetőt. A fenti példában explicit módon kikötöttük, hogy automatás kávét iszunk és Eclipse-t használunk. Ez szép és jó, ellenben a kódunkat (és vele együtt a programozót is) bebetonoztuk a kódunkba. Ugyanis mi van akkor, ha elmegyünk egy másik helyre, ahol kotyogós kávéfőző van, netán PhpStorm vagy épp NetBeans? Nos a mi programozónk ezt nem fogja elfogadni és hibaüzenettel elszáll, mert neki bizony elvei vannak.

Tovább »

19Jan

PHP OOP - Absztrakt osztályok és interfészek

Az előző OOP részben átvettük hogyan is kell osztályokat definiálni, példányosítani, valamint az access modifier kulcsszavakat. Mostani részünkben az absztrakt osztályokat és interfészeket vesszük górcső alá és vizsgáljuk meg, hogy mi célt is szolgálnak, példákon keresztül. A példák ismét PHP nyelven keresztül lesznek bemutatva. Ellenben mielőtt belevetnénk magunkat e két téma taglalásába, előtte tisztáznunk kell pár dolgot.

Öröklődés

Az előző cikkben szó volt a protected access modifier-ről, ahol említettem, hogy az osztály ön maga és a "gyermekosztályok" férnek hozzá az adott property-hez. Okkal merül fel a kérdés, hogy
Mi a ****** az a gyermekosztály? Utoljára tíz éve jártam ott, vakbélműtét után!
Nos itt nem erről van szó, hanem arról, hogy az osztályok közt szülő-gyermek viszonyt tudunk kialakítani és a mendeli genetika szerint az F1 nemzedék  így a szülő függvényeit/változóit (természetesen ha nem private) tovább tudjuk örökölni a gyermek osztályunkba. Ezeket már nem szükséges definiálnunk. Jön az újabb kérdés, hogy ez mégis mire jó mindez?

Tovább »

29Dec

Daemon idézés PHP-ben - 2. rész

Előző cikkemben végigvettünk pár alapfogalmat, ami a daemonokkal és a processekkel kapcsolatos, de mindeddig nem derült fény arra, miért is érdemes PHP nyelven ebbe belefogni. Rengetegen programoznak PHP nyelven, sokkal többen, mint C nyelven, amiben az ilyen programok egyébként íródnak. Egy webfejlesztéssel foglalkozó cégnek egyszerűbb egy backend fejlesztőjének kicsit utánajárni a dolognak, mintsem C nyelven megtanulnia.

Tovább »

2014-2018 © Letscode.hu. Minden jog fenntartva. Build verzió: