Hónap: 2025. február

Hogyan tudhatjuk meg, hogy mely beépített típusokból nem lehet örökölni?

Az előző két bejegyzésben egy egyéni igényekre szabott Range osztályt készítettünk mint kompozíciót a beépített range típust felhasználva. Azért nem a range alosztályaként hoztuk létre a Range osztályt, mert a beépített range típusból nem lehet örökölni. Egyben jeleztük azt is, hogy nem csak a range az egyetlen ilyen beépített típus. A kérdés, hogy milyen más …

Hogyan tudhatjuk meg, hogy mely beépített típusokból nem lehet örökölni? Read More »

Egyéni Range típus definiálása összeadás, kivonás és szorzás műveleti képességekkel – 2. rész

Az előző bejegyzésben egy feladat kapcsán olyan specializált Range osztály definiálását kezdtük el, amely példányai a beépített range típushoz hasonlóak, de a cél, hogy a következő képességekkel is rendelkezzenek: 1) két azonos elemszámú Range, vagy azonos elemszámú Range és range objektum összeadható a + operátorral, vagy egymásból kivonható a – operátorral. Az eredményül kapott új …

Egyéni Range típus definiálása összeadás, kivonás és szorzás műveleti képességekkel – 2. rész Read More »

Egyéni Range típus definiálása összeadás, kivonás és szorzás műveleti képességekkel – 1. rész

Tegyük fel, hogy egy nagyvállalat piaca fokozatosan nő, és ezért több részlegében egy adott időn keresztül évente egyenletesen növelik a létszámot, vagyis minden évben azonos fővel növekszik a dolgozói állomány. A részlegekben mind az induló létszám, mind pedig az éves növekedés eltérő. A kérdés, hogy a növekedési időszak alatt a részlegben együttesen évente hogyan alakul …

Egyéni Range típus definiálása összeadás, kivonás és szorzás műveleti képességekkel – 1. rész Read More »

MVC programfelépítés GUI alkalmazásban megfigyelő minta használata nélkül

Az előző két bejegyzésben az MVC architektúrára épülő programfelépítést szemléltettük. Elsőként egy nem grafikus felhasználói felületű alkalmazásban, majd pedig grafikus felhasználói felületet (GUI) kínáló alkalmazásban. Mindkét esetben a megfigyelő programtervezési mintát (observer design pattern) alkalmaztuk a megjelenítést végző objektumok értesítésére, hogy a modell állapota megváltozott, és ennek megfelelően módosuljon a megjelenítés. Most ugyanezt a mintapéldát …

MVC programfelépítés GUI alkalmazásban megfigyelő minta használata nélkül Read More »

MVC programfelépítés megfigyelő minta használatával GUI alkalmazásban

Az előző bejegyzésben az MVC szerkezetre épülő, nem grafikus felhasználói felületű alkalmazásra adtunk egy szemléltető példát, ahol a megfigyelő programtervezési mintát (observer design pattern) alkalmaztuk a megjelenítést végző objektumok értesítésére, hogy a modell állapota megváltozott, és ennek megfelelően módosuljon a megjelenítés. Mindazonáltal az MVC architektúra leginkább a grafikus felhasználói felületet (GUI) kínáló alkalmazásokban használatos, ezért …

MVC programfelépítés megfigyelő minta használatával GUI alkalmazásban Read More »

MVC programfelépítés megfigyelő minta használatával nem GUI alkalmazásban

Az előző néhány bejegyzésben azért jártuk körül részletesen a megfigyelő programtervezési mintát (observer design pattern), mert ezt a mintát lehet használni az MVC betűszóval jelölt programszerkezet megvalósítására is. Az MVC a Model, View és Controller angol szavakból ered, és egy olyan programfelépítésre utal, aminek lényege, hogy a modellt, vagyis az adatfeldolgozást, annak szabályait és logikáját …

MVC programfelépítés megfigyelő minta használatával nem GUI alkalmazásban Read More »

Megfigyelő minta attribútumleírók használatával

Az előző néhány bejegyzésben a megfigyelő tervezési minta (observer design pattern) alkalmazásával és megvalósítási változataival foglalkoztunk. Láthattuk a push és pull változatok közötti elvi különbséget, majd pedig az üzenetküldés feladatát kiszerveztük egy külön objektumba. Legutóbb megnéztük, hogy öröklés helyett hogyan lehet dekorátorokkal biztosítani a publikáló és feliratkozó objektumok azon képességeit, hogy a publikáló, vagy más …

Megfigyelő minta attribútumleírók használatával Read More »

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 »