Márpedig a komponens komponens modell, komponens orientált programozás

Cím a munka: A koncepció komponens komponens modell, komponens orientált programozás

Szakterület: Informatika, kibernetika és programozás

Leírás: Mi komponense egy páncél komponens. A programozás során az alkatrész építőköve a program áll a tulajdonságait tulajdonságait módszerek módszerek és események eseményeket. A tulajdonságok lehetővé teszik, hogy ellenőrizzék a megjelenését és az alkatrész viselkedése módszerek használata által nyújtott lehetőségeket a komponens események és reagálni olyan eseményekre belül programozott reakció komponense a komponens a külső események, és így tovább.

Fájl mérete: 61 KB

Job letöltve: 43 fő.

Márpedig a komponens komponens modell, komponens orientált programozás

1. Mi az az összetevő

Component (lat a omponent -. Komponens) - részben semmit elem. A programozási komponenst # 151; Ez a „tégla” a program, amely a tulajdonságok (tulajdonságok), módszerek (eljárások), és események (események). Tulajdonságai lehetővé teszik, hogy ellenőrizzék a megjelenését és viselkedését az alkatrész módszerek # 151; Execu? Call of által nyújtott lehetőségeket komponens és események # 151; reagáló események belül előforduló komponens programelem reagáló külső események és hasonlók. d.

A program fejlesztése alkatrészeket használ úgynevezett komponens-orientált programozás.

Kezdjük egy definíciója komponens programozás. összetevő # 151; Ez egy független modult, amely többszöri felhasználásra alkalmas, valamint a felhasználó bináris formátumban. Ez a meghatározás leírja a négy fő összetevőjét jellemzőit. Nézzük meg őket viszont.

A komponens úgy definiáljuk, mint egy független modult. Ez azt jelenti, hogy minden egyes komponens teljesen önellátó. Más szóval, a komponens teljes körű funkciókat. Annak belső működését zárva „a külvilág”, de a végrehajtás lehet változtatni anélkül, hogy a kódot, ahol az alkatrész.

Az összetevő lényege, hogy ismételten felhasználható. Ez azt jelenti, hogy a komponens lehet használni minden olyan program, amely előírja, hogy annak funkcióit. Egy program, amely egy komponens, az ügyfél. Így a komponens képes működni bármelyik ügyfelek száma.

Komponens egy külön modul. Ez nagyon fontos. A szempontból a kliens komponens hajt végre egy funkciója vagy funkciókat. A funkciók az összetevő használható bármely alkalmazás, de a komponens nem egy önálló program.

Végül az alkatrész kell ábrázolni bináris formában. Ez alapvetően fontos. Bár az alkatrészeket lehet használni a sok ügyfél, hogy nem férnek hozzá a forráskódot. A funkció a komponens az ügyfélfogadásra nyitva csak a nyilvános tagok. Más szóval, ez egy komponens ellenőrzések funkciók nyitva marad az ügyfelek számára, és milyen # 151; keep „lakat alatt.”

2. komponens modell

Alapvetően fontos modell, amely megvalósítja az alkatrészeket. Annak érdekében, hogy az ügyfél használja a komponens, szükséges, hogy az ügyfél és az alkatrész használja ugyanazokat a szabályokat. A szabályok, amelyek meghatározzák a forma és az alkatrész viselkedése, és az úgynevezett komponens modell. Ez komponens modell meghatározza a kölcsönhatás természetének komponensek és modellek. Component Model legkevésbé fontos, mert többszöri felhasználásra alkalmas komponens a felhasználó számára biztosítunk bináris formában lehet megvalósítani a különböző módon, és ezek száma módszer nagyon nagy lehet. Például sok különböző módszerek átviteli és vételi paramétereit értékeket. Az is lehetséges, hogy jelöljenek ki egy másik (és engedje) a memóriát (és más rendszer erőforrások) objektumok. Ezért hatékony felhasználása kliens komponensek és a komponensek maguknak kell felelniük meghatározott szabályoknak komponens modell. Tény, hogy a komponens modell egyfajta szerződés az ügyfél és az összetevő, amely mindkét fél egyetért, hogy végre.

Létrehozása előtt a C # és a környezetre. NET Framework legtöbb komponensek COM komponensek. COM lett tervezve a hagyományos Windows-környezet és a C ++. Ezért elvileg nem képesek kihasználni az új memória kezelési technikák végrehajtását C # és. NET Framework. Ennek eredményeként, a COM szerződés már meglehetősen nehéz végrehajtani és megbízhatatlan. Szerencsére, C #, és a környezetet. NET Framework vannak fosztva szinte minden problémát elődeik.

3. Mi C # -alkatrészek

Sajátosságai miatt a munka: a C # nyelvet, annak bármely osztálya teljes mértékben összhangban van az általános meghatározás egy komponens. Például, amikor összeállítják, osztály (annak bináris formában) lehet használni a különböző alkalmazások. De ez azt jelenti, hogy minden osztály egy alkatrész? A válasz: nem. Ahhoz, hogy az egyik összetevője az osztály, akkor követnie kell a komponens modell, egy bizonyos környezetben. NET Framework. Szerencsére ez nem nehéz elérni: egy osztály végre kell hajtania a rendszer interfész. ComponentModel. IComponent. Végrehajtásában a IComponent felület alkatrész megfelel egy sor szabályt, amely lehetővé teszi az összetevő, hogy kompatibilis legyen a környezetre. Framework.

Annak ellenére, hogy az egyszerűség a végrehajtás a IComponent felület. sok esetben jobb, ha egy alternatív lehetőség - Rendszer osztályban. ComponentModel. Komponens. A Component osztály rendelkezik egy szabványos végrehajtását IComponent felület. Ugyancsak támogatja a más hasznos eszközök rejlő összetevőket. A tapasztalat azt mutatja, hogy a legtöbb komponens az alapítók sokkal kényelmesebb hogy távolítsa el őket az osztály komponens. mint maguk végrehajtani IComponent felület. mert az első esetben, akkor egyszerűen kevesebb programozással. Ezért a C #, hogy egy komponens nem igényel „hősies erőfeszítései” részéről a programozó.

4. konténerek és egységek

C # -alkatrészek szorosan kapcsolódik két más építmények: konténerek, és alkatrészek.

konténer # 151; olyan alkatrészek csoportja. Konténerek, hogy könnyen programot, amelyben az alkalmazott alkatrészek számát.

Csomópont lehetővé teszi kötőpartner és konténerek.

5. Interface IComponent

IComponent interfész meghatározza a szabályokat, amelyeket be kell tartani az összes alkatrészeket. A IComponent felület által meghatározott egyetlen tulajdonság, és egy esemény. Itt van, hogy állapítsa ingatlan telek.

Az ingatlan helyén lesz, vagy beállítja az alkatrész-összeszerelés. Node azonosítja az alkatrészt. Ez a tulajdonság null -érték, ha az alkatrész nem tárolja a tartályba.

Meghatározott esemény IComponent felületen. Elhelyezve a nevét viseli, és kijelentette, az alábbiak szerint:

esemény EventHandler elhelyezve

Az ügyfél, aki értesíteni kell a megsemmisítése az alkatrész regisztrál egy esemény esemény elhelyezve. IComponent felület is örökli a rendszer interfész. IDisposable. ahol megsemmisíteni () módszer definiált:

Ez a módszer felszabadítja a felhasznált források.

6. Component osztály

Annak ellenére, hogy a teremtés az alkatrész is elegendő, hogy végre IComponent felület. Sokkal könnyebb létrehozni egy osztályban, amit az osztály komponens. mert megvalósítja IComponent felületen alapértelmezés szerint. Ha egy osztály örökli a Component osztály. ezért automatikusan elindítja a szükséges szabályokat megszerezni. NET-kompatibilis készüléken.

A Component osztály határozza meg az alapértelmezett konstruktor csak. rendszerint
programozók ne hozzon létre Component objektumot közvetlenül, mert a fő célja ennek az osztálynak # 151; egy alap a generált komponensek.

nyilvános IContainer Container

Container tulajdonság visszaadja egy tartályt, amely tartalmazza a hívó összetevő. Ha az alkatrész nincs jelen a tartályban, akkor null értéket ad vissza. Emlékeztetni kell arra, hogy a konténer tulajdonság halmaz nem komponenst és egy tároló.

A második tulajdonság, Mezei. meghatározott IComponent felületen. A Component osztály megvalósítása egy virtuális:

nyilvános virtuális ISite webhelyről

A tulajdon portál Gets vagy beállítja az objektum típusát ISite. kapcsolódó komponens. Ez vissza pi11 ha egy komponens a tartály nem. Oldal tulajdonság nem alkotórész, és egy tartályt.

A Component osztály határozza meg két nyilvános módszerekkel. Az első módszer egy felülbíráló toString (). Másodszor, dobja () módszer. Ezt alkalmazzák a két forma. Az első ezek közül a következők:

public void megsemmisíteni ();

Dobja () metódust az első forma közlemény bármely felhasznált források a hívó összetevő. Ez a módszer valósít megsemmisíteni () meghatározott módszer a felület rendszer. IDisposable. Ahhoz, hogy felszabadítsuk a komponensek és az erőforrások elfoglalták az ügyfél kéri, ez a verzió megsemmisíteni () metódust.

Itt a második formája az eljárás dobja ().

védett virtuális public void megsemmisíteni (bool hogyan);

Ha ez a paraméter mennyire igaz. Ez a változat a módszer így mindkét kezelt és a kezeletlen által használt erőforrások a hívó.

Ha milyen az értéke hamis. Ez alól csak a felügyelt források. Mivel ez a módszer változatával megsemmisíteni () védett (protected), akkor nem lehet hozzáférni az ügyfél kódot. Ezért az ügyfél használja az első verzió. Más szóval, az első változata a módszerrel hívja megsemmisíteni () hívást generál, hogy dobja módszer (bool hogyan).

Általában olyan komponens, amely már nem szükséges, felülírhatja a változatát dobja (bool hogyan), ha az tartalmazza a forrásokat, hogy meg kell, hogy kiadja. Ha a komponens nem vesz fel semmilyen forrásokat, akkor a szabadon bocsátását elég szabványos végrehajtásának módja megsemmisíteni (bool hogyan), meghatározott osztály komponens.

A Component osztály örökli MarshalByRefObject osztályban. amely akkor használható, ha a komponens létre kívül a helyi környezetet, például egy másik folyamat vagy egy másik számítógépen kapcsolódik az első hálózati. Ahhoz, hogy adatcserét (érvek és visszatérési értékek módszerek) kell lennie egy olyan mechanizmust, amely meghatározza az adatok átviteli módot. Alapértelmezésben azt feltételezzük, hogy az információkat kell átadni az érték, de az öröklési osztály MarshalByRefObject adatokat referencia szerint kell átadni. Így a C # -alkatrészek továbbítja a link adatait.

7. komponensek: előnyök és hátrányok

Komponens-orientált fejlesztési megvannak a maga erősségei és gyengeségei. Kétségtelen előnye, hogy újrahasználható? Igen, az összhang a felhasználói felület, a képesség, hogy gyorsan és produktív fejlesztési programokat. Ez komponensek lehetővé teszik az egész? Programozók, hogy a végtermék az „építőkockák”, anélkül, hogy a részleteket a végrehajtás egy adott alkotóelem. Természetesen egy sor osztályok használt objektum-orientált megközelítés lehetővé teszik azt is, hogy újra a kódot, de az összetevők teszik kód újrafelhasználásának teljesen természetes.

Ha a rendszer tervező csapat, amit a programozók használják ugyanazokat a vizuális elemek, akkor természetesen a felület A program kerül végrehajtásra, ugyanabban a stílusban. Sőt, a változó, például néző egyik komponens, változtatni fogunk a megjelenése bárhol is használják.

A komponensek lehetővé teszik az önálló fejlődés a felület. Változások a komponens nem befolyásolja a kód modulokat, amelyben használják. Fejlesztése több független osztályok körülbelül azonos eredményt, kivéve egy probléma. Között programozók átlag

minősítési hajlamos összekeverni alkalmassága osztályok, zavaros módszerek egyik osztálynak a másik. Components részvény kódját hatékonyabban.

Végül, miután összegyűlt a kellő számú építőelemek segítségével nagyon gyorsan hozzon létre egy vizuális interfész a program, sőt, anélkül, hogy egyetlen sor kódot!

Ugyanez kellene fizetnie ezt az egészet? Ez nem meglepő hangokat, de meg kell fizetni egy objektum-orientált megközelítés. A rugalmasság, hogy ellenőrizzék a viselkedését komponensek kiváltó esemény az írás „esemény-orientált” kódot. Tegyük fel például, szükségünk van egy komponens megjelenítő színes vonalak. Az objektum-orientált megközelítés szükségessé teszi, hogy hozzon létre egy utódja ListBox osztály és újraimplementálni Paint (), végre egy rajz színes vonalak. Ahhoz, hogy OnPaint esemény, és nem hoz létre semmilyen osztályok kitolja sok programozó használja az események rovására az objektum-orientált megközelítés. Ez „kitolja”, azaz a. A. Senki zavar, hogy hozzon létre egy új komponenst, akik felhívni színes vonalak alapján egy meglévő ListBox komponenst. Ez a megközelítés a leginkább hű # 151; mivel az ilyen összetevőket újra fel lehet használni!

Tovább kényelmi díjat # 151; annak szükségességét, hogy a rugalmas elemek. Semmi értelme, hogy írjon egy összetevő, amely felhívja csak azokat a sorokat piros. Ilyen komponens nehéz lenne használni bárhol, kivéve, hogy a programot, amellyel eredetileg szánták. Sokkal helyes írási alkatrészrajz vonal meghatározott szín, és a színe a tulajdonságok teszik (vagy valahogy belül tárolt string). Ez egy ilyen összetevő használható bármely program. Ez a rugalmasság igényel némi extra erőfeszítést szükséges költségeket, amelyek nem mindig nyilvánvaló a fejlesztési program, de ez megtérül, ha újrahasznosítására komponenst.

Összefoglalva ez az érv, azt mondhatjuk, hogy a cél a fejlődő új alkatrész # 151, ami egy új funkciót, amely független az enyém, de rugalmasan konfigurálható részt, amely lehetővé teszi újrafelhasználás ?.

A vizuális és nem vizuális komponensek a tervező formák

Könyvtár. NET Framework kétféle összetevőből áll: vizuális és nevizualnye. Vizuális komponensek felhasználói felület elemeit. Ez például a komponensek: gombra (), legördülő menüből (ComboBox) vagy a címkét (Label). Nem vizuális komponensek nincs felhasználói felület és nem található az űrlapon. Visual Studio designer elhelyezi őket az alján a tervező ablak. Ilyen összetevők, például a komponensek dolgozni adatbázisok, időzítő (Timer), a munka komponenst a soros port (soros port) és mások.

Pong vzhe szenvednek molodshomu shkіlnomu vіtsі keresztül kényelmesen pobudovane navchannya sformuvati zdіbnostі osobistostі hogy samovdoskonalennya samorozvitku samopіznannya. Tanárok otrimayut vіdpovіd jak zrobiti lakók bőr ditina vіrila a svoї Sealy vikladalas a Povny erő svoїh іntelektualnih mozhlivostey hogy virosla vpevnenoyu a sobі Lyudin postupovo óra navchannya a Shkolі vіri egy nabuvala vmіnnya vchitis vіryachi vlasnі a Sealy hogy vpevneno nabuvayuchi zagalnolyudskі umіnnya hogy navichki. Realіzatsіya Vіri School projektet jelent.