Titlul lucrării: Conceptul de componente, model de componente, programarea orientată pe componente
Specializarea: Informatică, Cibernetică și Programare
Descriere: Ce este o componentă a unei componente armură. În programare, componenta este blocul de construcție al programului constă din proprietățile proprietăților metodelor metode și evenimente evenimente. Proprietățile permit controlul aspectul și comportamentul componentei metode folosesc posibilitățile oferite de evenimentele componente și să reacționeze la evenimente care au loc în cadrul componentei de reacție programată a componentei la evenimente externe și așa mai departe.
Mărime fișier: 61 KB
Job descărcat: 43 de persoane.
Noțiunea unei componente, model de componente, programarea orientată pe componente
1. Care este componenta
Component (lat cu omponent -. Componenta) - parte, element de nimic. În programarea componentei # 151; Acest „caramida“ a programului, constând din proprietăți (proprietăți), metode (metode), si evenimente (evenimente). Proprietăți permit să controleze aspectul și comportamentul metodelor de componente # 151; Execu? Apel de oportunitățile oferite de componente și evenimente # 151; receptiv la evenimente care au loc în cadrul componentei programului component reacționează la evenimente externe și altele asemenea. d.
Dezvoltarea programului prin utilizarea componentelor numite de programare orientate pe componente.
Vom începe cu o definiție a programării componentelor. component # 151; Este un modul independent, care este destinat utilizării multiple și furnizează utilizatorului în format binar. Această definiție descrie cele patru caracteristici cheie ale componentelor. Să-i considerăm, la rândul său.
O componentă este definită ca un modul independent. Aceasta înseamnă că fiecare componentă este suficientă în întregime. Cu alte cuvinte, componenta oferă un set complet de funcții. lucrările sale interioare închise pentru „lumea exterioară“, dar punerea în aplicare pot fi modificate fără a afecta codul, în care se utilizează componenta.
Componenta este concepută pentru utilizare repetată. Acest lucru înseamnă că, componenta poate fi utilizat de către orice program care necesită funcțiile sale. Un program care utilizează o componentă numită client. Astfel, componenta poate funcționa cu orice număr de clienți.
Componenta este un modul separat. Acest lucru este foarte important. Din punct de vedere al componentei client îndeplinește o funcție specifică sau un set de funcții. Funcțiile componentei poate fi utilizat de către orice aplicație, dar componenta nu este un program independent.
În cele din urmă, componenta trebuie să fie reprezentate într-un format binar. Acest lucru este fundamental importantă. Deși componentele pot fi utilizate de către mulți clienți, aceștia nu au acces la codul sursă. Funcționalitatea componentei este deschisă pentru clienții numai prin intermediul său public membri. Cu alte cuvinte, este o componenta de control care funcționează rămân deschise pentru clienți, și ceea ce # 151; păstrați „sub cheie.“
2. Componenta Modelul
Fundamental, de asemenea, important model care implementează componentele. Pentru ca clientul să utilizeze componenta, este necesar ca atât clientul, cât și componenta folosesc același set de reguli. Un set de reguli care determină forma și comportamentul componentei, și este numit modelul componentei. Acest model componenta determină natura interacțiunii componentelor și a modelelor. Componenta Modelul cel mai puțin important, deoarece sunt destinate utilizării multiple componente furnizate utilizatorului într-un format binar poate fi implementată în diverse moduri, iar numărul acestor metode pot fi foarte mari. De exemplu, există mai multe metode diferite de valori parametrilor de transmisie și recepție. De asemenea, este posibil să se aloce un alt (și eliberați), memoria (și alte resurse de sistem) pentru obiecte. Prin urmare, pentru utilizarea eficientă a componentelor client și componentele ei înșiși trebuie să respecte normele definite de model componente. De fapt, modelul de componente este un fel de contract între client și componenta pe care ambele părți sunt de acord pentru a efectua.
Înainte de crearea de C # și a mediului. NET Framework cele mai multe componente sunt componente COM. COM a fost proiectat pentru mediul tradițional Windows și C ++. Prin urmare, este, în principiu, nu este în măsură să profite de noi tehnici de management de memorie sunt puse în aplicare în C # și. NET Framework. Ca urmare, contractul COM a fost destul de dificil să pună în aplicare și nesigure. Din fericire, C #, și mediul înconjurător. NET Framework sunt lipsiți de aproape toate problemele predecesorilor lor.
3. Ce este C # componente montaj
Datorită particularităților lucrării înseamnă limbajul C #, oricare din clasa sa este în deplină concordanță cu definiția generală a unei componente. De exemplu, atunci când sunt compilate, de clasă (în forma sa binar) pot fi utilizate în diverse aplicații. Dar aceasta nu înseamnă că orice clasă este o componentă? Răspunsul este nu. Pentru a deveni o componentă a clasei, aceasta ar trebui să urmeze un model de componente, un anumit mediu. NET Framework. Din fericire, acest lucru nu este greu de realizat: o clasă trebuie să implementeze interfața sistemului. ComponentModel. IComponent. La punerea în aplicare a componentei de interfață IComponent satisface un set de reguli care permite componentei să fie compatibilă cu mediul. Cadru.
În ciuda simplității de punere în aplicare a interfeței IComponent. în multe situații este mai bine să utilizați o alternativă opțiune - clasa de sistem. ComponentModel. Componenta. Clasa Componenta asigură o implementare standard a interfetei IComponent. Aceasta susține, de asemenea, alte instrumente utile de componente inerente. Experiența arată că majoritatea componentelor fondatorilor este mai convenabil pentru a le elimina de la componenta de clasă. decât ei înșiși să pună în aplicare interfață IComponent. pentru că, în primul caz, pur și simplu mai puțin de programare. Prin urmare, în C # pentru a crea o componentă nu are nevoie de „eforturi eroice“ din partea programatorului.
4. Containere și unități
Cu C # componente montaj sunt strâns legate de alte două construcții: containere și componente.
recipient # 151; un grup de componente. Containere face ușor de program în care un număr de componente utilizate.
Nodul permite componentelor de legare și containere.
5. Interfață IComponent
Interfața IComponent definește regulile care trebuie urmate de toate componentele. Interfața IComponent definită de o singură proprietate și un singur eveniment. Iată cum să declare proprietatea site-ului.
Site-ul proprietate Gets sau stabilește ansamblul de componente. Nod identifică componenta. Această proprietate este nulă în cazul în care componenta-valoare nu este stocată în container.
Eveniment definit în interfața IComponent. Dispusă poartă numele și este declarată după cum urmează:
eveniment EventHandler Dispus
Clientul care are nevoie să fie notificat în distrugerea componentei înregistrează un eveniment de eveniment cesionat. interfață IComponent moștenește, de asemenea, interfața sistemului. IDisposable. în care se elimina (), metoda este definită:
Această metodă eliberează resursele utilizate.
6. clasa Component
În ciuda faptului că crearea componentei este suficientă pentru a pune în aplicare interfață IComponent. Este mult mai ușor de a crea o clasă care derivă de la componenta de clasă. deoarece pune în aplicare interfață IComponent în mod implicit. În cazul în care o clasă moștenește de la clasa Component. Prin urmare, se execută în mod automat normele necesare pentru a obține. NET compatibil component.
Clasa Componenta defineste doar un constructor implicit. uzual
programatorii nu creează obiect de clasă Component direct, deoarece scopul principal al acestei clase # 151; să fie o bază pentru componentele generate.
publice IContainer Container
proprietate Container returnează un container care conține componenta de asteptare. În cazul în care componenta nu este prezentă în recipient, returnează null. Trebuie amintit faptul că setul de proprietate containere nu este o componentă, și un container.
A doua proprietate, Site-ul. definite în interfața IComponent. Clasa Componenta este implementată ca o virtuală:
virtual public ISite site-ului
Site-ul proprietate Gets sau setează tipul de obiect ISite. asociată componentei. Se întoarce pi11 în cazul în care o componentă într-un container care nu. Site-ul proprietate este setat să nu o componentă, și un container.
Clasa Componenta definește două metode publice. Prima metodă este un ToString suprascrie (). În al doilea rând, se elimina () metoda. Este folosit în două forme. Prima dintre acestea este după cum urmează:
public void Evacuați ();
Aruncați () metoda numită în prima formă eliberează toate resursele folosite de componenta de asteptare. Această metodă pune în aplicare o metodă se elimina () definită în Sistemul de interfață. IDisposable. Pentru a elibera componentele și resursele pe care le au ocupat apelurile client această versiune va elimina metoda ().
Aici este a doua formă a metodei Aruncați ().
protejate void virtuale publice se elimina (bool cum);
Dacă acest parametru este modul în care este adevărat. Această versiune a metodei eliberează atât resursele gestionate și negestionate utilizate de către apelant.
Dacă modul în care este valoarea false. Aceasta scutește numai resurse negestionate. Deoarece această versiune a metodei Aruncați () este protejat (protejat), acesta nu poate fi accesat din codul de client. Prin urmare, clientul folosește prima versiune. Cu alte cuvinte, prima versiune a metodei numesc Evacuați () generează un apel de a dispune metoda (bool cum).
În general, o componentă care nu mai este necesară, suprascrie versiunea de Evacuați (bool cum), în cazul în care conține resursele de care aveți nevoie pentru a elibera. În cazul în care componenta nu preia orice resurse, atunci pentru eliberarea suficient de metoda sa de punere în aplicare standard, se elimina (bool cum), definit în clasa Component.
Clasa Componenta moștenește clasa MarshalByRefObject. care este utilizat atunci când componenta este creată în afara mediului local, de exemplu, într-un alt proces sau un alt computer conectat cu prima rețea. Pentru a face schimb de date (argumente și returnează valori ale metodelor) ar trebui să fie un mecanism care va determina metoda de transfer de date. În mod implicit, se presupune că informațiile ar trebui să fie transmise prin valoare, dar datele MarshalByRefObject clasa de moștenire va fi trecut prin referință. Astfel, C # transmite datele componente montaj link-ul.
7. Componente: avantaje și dezavantaje
Dezvoltarea orientată pe componente are propriile sale forte și punctele slabe. avantaj incontestabil este reutilizabil? Da, consistența interfeței cu utilizatorul, capacitatea de a rapid și productive programe de dezvoltare. Asta componente permit vorba? Programatorii face produsul final al „pietrele de temelie“, fără a intra în detalii cu privire la punerea în aplicare a unei anumite componente. Desigur, un set de clase utilizate într-o abordare orientată spre obiect, de asemenea, face posibilă reutilizarea codului, dar ingredientele face codul de reutilizare perfect naturale.
În cazul în care echipa de proiectare a sistemului toate programatorii folosesc același set de componente vizuale, atunci, desigur, la interfața programului va fi executat în același stil. Mai mult decât atât, prin schimbarea, de exemplu, o vedere a uneia dintre componente, vom schimba aspectul său ori de câte ori este utilizat.
Componentele permit dezvoltarea independentă a interfeței. Modificările din cadrul unei componente nu afectează modulele de cod, în care este utilizat. Dezvoltarea de mai multe clase independente oferă aproximativ aceleași rezultate, cu excepția unei singure probleme. Printre programatori medie
tendința de calificare pentru a amesteca clase de funcționalitate, încurcată metode de o clasă cu alta. Componentele codului social mai eficient.
În cele din urmă, după ce a acumulat un număr suficient de componente care pot fi foarte rapid pentru a crea o interfață vizuală a programului, de fapt, fără a scrie o singură linie de cod!
Același lucru ar trebui să plătească pentru toate astea? Nu este surprinzător sunete, dar va trebui să plătească o abordare orientată spre obiect. Flexibilitatea de a controla comportamentul componentelor cu un eveniment declanșează scrierea de cod „orientate spre eveniment“. Să presupunem, de exemplu, avem nevoie de o componentă pentru afișarea de linii colorate. Orientat-obiect abordare ne cere pentru a crea o clasă ListBox succesor și reimplementeze Paint (), să pună în aplicare un desen linii colorate. Pentru a realiza evenimentul OnPaint și nu creează clase împinge mulți programatori pentru a utiliza evenimentele în detrimentul abordării orientate pe obiect. Aceasta „împinge“, adică. A. Nimeni nu deranjeaza pentru a crea o nouă componentă, care pot desena linii colorate pe baza unei componente ListBox existente. Această abordare va fi cel mai fidel # 151; deoarece astfel de componente pot fi refolosite!
O altă taxă de confort # 151; necesitatea de a avea componente flexibile. Nu are nici un sens să scrie o componentă care atrage doar linii de culoare roșie. O astfel de componentă ar fi dificil de utilizat oriunde, cu excepția faptului că programul pentru care a fost prevăzut inițial. O mare linie corectă desen componenta de scriere specificate de culoare, iar culoarea în proprietățile sale fac (sau într-un fel stocate în șir). Aceasta este o astfel de componentă poate fi folosită în orice program. O astfel de flexibilitate presupune unele costuri suplimentare ale efortului necesar care nu sunt întotdeauna evidente în dezvoltarea unui program, dar se amortizează atunci când reutilizați componente.
Pentru a rezuma acest argument, putem spune că obiectivul de a dezvolta o nouă componentă # 151, creând o nouă funcționalitate, care este independent de-al meu, dar o parte flexibil configurabil care permite reutilizarea ?.
Componentele vizuale și non-vizuale în formele de designer
Biblioteca. NET Framework are două tipuri de componente: vizuale și nevizualnye. Componentele vizuale sunt elemente de interfață de utilizator. Acest lucru, de exemplu, componente: buton (buton), ComboBox (ComboBox) sau eticheta (Label). Componentele non-vizuale nu au o interfață de utilizator și nu poate fi localizată pe formular. designer de Visual Studio le plasează în partea de jos a ferestrei de designer. Astfel de componente sunt, de exemplu, componentele lucrează cu baze de date, temporizator (timer), componenta de lucru de la portul serial (SerialPort) și altele.
Pong vzhe suferă de molodshomu shkіlnomu vіtsі prin pobudovane confortabil navchannya sformuvati zdіbnostі osobistostі la samovdoskonalennya samorozvitku samopіznannya. Profesorii otrimayut vіdpovіd iac zrobiti locuitori din ditina cutanate vіrila în svoї vikladalas Sealy privind forța Povny svoїh іntelektualnih mozhlivostey că virosla vpevnenoyu în sobі Lyudin postupovo oră navchannya în Shkolі vіri un nabuvala vmіnnya vchitis vіryachi vlasnі în Sealy că vpevneno nabuvayuchi zagalnolyudskі umіnnya care navichki. Proiectul Realіzatsіya Vіri School în sine.