Uncategorized

Megfigyelő minta osztálydekorálással

Az előző bejegyzésekben a megfigyelő tervezési mintán (observer design pattern) alapuló alkalmazási példákkal és azok megvalósítási változataival foglalkoztunk. Ezek a klasszikus implementáción alapultak. Ez azt jelenti, hogy a publikáló és feliratkozó, vagy más szóval a megfigyelt és a megfigyelő konkrét osztályok a Publisher, illetve a Subscriber osztályokból örökölték a megfigyelő minta alkalmazásához szükséges képességeket, mint …

Megfigyelő minta osztálydekorálással Read More »

Értesítés küldés több forrásból több vevőnek – központosított üzenettovábbítás

Az előző három bejegyzésben azt a helyzetet modelleztük le programban, amikor egy szupermarket hírlevelére a vásárlók feliratkoznak azért, hogy ha új termék jelenik meg az áruház kínálatában, akkor arról értesítést kapjanak. A vásárlókat természetesen nem minden árucikk érdekeli, de ha igényük van rá, akkor is csak egy bizonyos árszint alatt hajlandóak az adott terméket megvenni. …

Értesítés küldés több forrásból több vevőnek – központosított üzenettovábbítás Read More »

Értesítés küldés állapotváltozásról – megfigyelő minta, Pull változat

Az előző két bejegyzésben egy áruház hírlevelére feliratkozó vásárlók új termék érkezéséről való tájékoztatását, és ennek alapján történő vásárlásokat modelleztük és kódoltuk a megfigyelő tervezési minta Push változata alapján. Most ugyanezt a feladatot a megfigyelő minta Pull változatával oldjuk meg. Ahogy arról az előzőekben szó volt, a Pull változat esetén a vevő előre megkapja az …

Értesítés küldés állapotváltozásról – megfigyelő minta, Pull változat Read More »

Értesítés küldés állapotváltozásról üzenetobjektum átadásával – megfigyelő minta, push változat

Az előző bejegyzésben azt a helyzetet modelleztük, amikor egy áruház új termék érkezésekor értesíti a címüket megadó vásárlókat, lehetőséget adva, hogy ha az adott termék, az adott áron érdekli őket, akkor meg tudják vásárolni. Láttuk, hogy a modellben csak a vásárlási hajlandóságot tudtuk megjeleníteni, aminek oka az, hogy a potenciális vásárlók csak a termékinformációt (terméknév …

Értesítés küldés állapotváltozásról üzenetobjektum átadásával – megfigyelő minta, push változat Read More »

Értesítés küldés állapotváltozásról – megfigyelő minta, push változat

Modellezzük le azt a helyzetet, amikor egy szupermarket hírlevelére a vásárlók feliratkoznak azért, hogy ha új termék jelenik meg az áruház kínálatában, akkor arról értesítést kapjanak. Természetesen nem minden árucikk érdekel minden vásárlót. A vásárlóknak eltérő igényeik vannak, és ráadásul hiába érdekli a termék, egy bizonyos árszint felett nem tudja vagy nem akarja megvásárolni. Viszont, …

Értesítés küldés állapotváltozásról – megfigyelő minta, push változat Read More »

Kivételkezelő szerkezetet vagy előzetes feltételvizsgálatot használjunk?

Minden programnak van egy tervezett ideális normál lefolyása, ami akkor valósul meg, ha minden az elvárások szerint történik. Ez utóbbi azt jelenti például, hogy egy függvény mindig a megfelelő típusú és értékű argumentumot kap, a felhasználó nem hibázik az adatbevitelnél, a fájl mindig létezik az adott néven, vagy egy hálózati kapcsolat soha nem szakad meg. …

Kivételkezelő szerkezetet vagy előzetes feltételvizsgálatot használjunk? Read More »

Hogyan tegyük nagybetűssé egy szöveg szavainak kezdőbetűit?

Ez a kérdés, illetve feladat például olyankor merül fel, ha egy személynevet tartalmazó karakterlánc csupa kisbetűvel áll rendelkezésre, de megjeleníteni a helyesírás szabályai szerint kívánjuk, azaz a családi- és utónevet nagy kezdőbetűvel akarjuk írni. Egy másik eset, ha angol nyelvű cikkben, könyvben vagy más írásműben a karakterlánc címsorként szerepel. Ilyenkor az angolban az egyes szavak …

Hogyan tegyük nagybetűssé egy szöveg szavainak kezdőbetűit? Read More »

Hogyan készítsünk Excel táblához hasonló számolótáblát? – 5. befejező rész

Az előző bejegyzésekben, megadott specifikáció alapján egy Excelszerű egyszerű számolótábla fejlesztésébe kezdtünk. A megvalósítást három fő részre bontottuk, amelyből az első kettőt, vagyis a táblázat kirajzolását, valamint az egyes cellákban levő beviteli mezőkhöz tartozó kontrollváltozók létrehozását, már megtettük. A harmadik fázis az eseménykezelők kidolgozása. Ezekből a cellatartalom kiértékelését és aktualizálását végző eseménykezelőket, valamint egy adott …

Hogyan készítsünk Excel táblához hasonló számolótáblát? – 5. befejező rész Read More »

Hogyan készítsünk Excel táblához hasonló számolótáblát? – 4.rész

Folytatjuk az előző bejegyzésekben elkezdett Excelszerű egyszerű számolótábla megvalósítását. Legutóbb a cellatartalom kiértékelését végző eseménykezelőt implementáltuk. Most annak az eseménykezelőnek a kidolgozásával kezdjük, amellyel egy egéresemény bekövetkeztekor meg tudjuk jeleníteni a cellában levő képletet (kifejezést), ha volt ilyen. Ennek felhasználásával utána a táblázat cellaértékeinek aktualizálását végző eseménykezelőt is lekódoljuk. Az előző bejegyzésekből már ismert, hogy …

Hogyan készítsünk Excel táblához hasonló számolótáblát? – 4.rész Read More »

Hogyan készítsünk Excel táblához hasonló számolótáblát? – 3.rész

A legutóbbi cikkben a számolótábla fejlesztésének második fázisát fejeztük be azzal, hogy végigvettük a tábla specifikáció szerinti működését lehető eseményeket, és az egyes eseményekhez hozzárendeltünk meghatározott nevű eseménykezelő függvényeket. Most áttérünk a harmadik fázisra, és ezen eseménykezelők megvalósításába kezdünk bele. Elsőnek a cellatartalom kiértékelését végző eval_cell_content_event_handler() eseménykezelő és ehhez kapcsolódó függvények implementációjával foglalkozunk. Ez az …

Hogyan készítsünk Excel táblához hasonló számolótáblát? – 3.rész Read More »