Cadru

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 20 februarie 2022; verificările necesită 7 modificări .

Framework (uneori framework ; anglicism , neologism din framework  - schelet , frame, frame, structure) - o platformă software care determină structura unui sistem software; software care facilitează dezvoltarea și integrarea diferitelor componente ale unui mare proiect software.

Cuvântul „cadru” este de asemenea folosit, iar unii autori îl folosesc ca principal, inclusiv nu se bazează deloc pe analogul englez [1] [2] [3] . De asemenea, puteți vorbi despre abordarea cadru [3] ca o abordare a construirii de programe, în care orice configurație de program este construită din două părți:

  1. Partea permanentă este un cadru care nu se schimbă de la configurație la configurație și poartă cuiburi în care este plasată a doua parte, variabilă;
  2. Module conectabile (sau puncte de expansiune).

Diferențele față de bibliotecă

„Cadru” diferă de conceptul de bibliotecă prin aceea că o bibliotecă poate fi utilizată într-un produs software pur și simplu ca un set de subrutine cu funcționalitate similară, fără a afecta arhitectura produsului software și fără a impune nicio restricție asupra acestuia. În timp ce „cadru” dictează regulile de construire a arhitecturii aplicației, stabilirea comportamentului implicit în stadiul inițial de dezvoltare - „cadru”, care va trebui extins și modificat conform cerințelor specificate. Un exemplu de cadru de software este CMF ( Content Management Framework ), iar un exemplu de bibliotecă este un modul de e -mail .

De asemenea, spre deosebire de o bibliotecă, care combină un set de funcționalități similare, un „cadru” poate conține un număr mare de biblioteci de diferite subiecte.

Diferența cheie dintre un „cadru” și o bibliotecă este inversarea controlului : codul utilizatorului apelează funcțiile (sau clasele) bibliotecii și preia controlul după apel. În „cadru”, codul utilizatorului poate implementa un comportament specific care este încorporat în codul mai general - „abstract” al cadrului. În acest caz, „cadru” apelează funcțiile ( clasele ) codului utilizator [4] .

Cadru de sistem software

Acesta este cadrul unui sistem software (sau subsistem). Pot include: programe utilitare, biblioteci de coduri, limbaj de scripting și alte programe software care facilitează dezvoltarea și integrarea diferitelor componente ale unui proiect software mare. De obicei, asocierea are loc prin utilizarea unui singur API .

Exemple: cadre web precum Zend Framework, Laravel sau Symfony PHP , sau Django scris în Python .

Cadru de aplicație

Unul dintre principalele avantaje ale utilizării aplicațiilor „wireframe” este structura „standard” a aplicației. „Frames” au devenit populare odată cu apariția interfețelor grafice cu utilizatorul , care tindeau să implementeze un cadru standard pentru aplicații. Odată cu utilizarea lor, a devenit mult mai ușor să se creeze instrumente pentru crearea automată a interfețelor grafice, deoarece structura implementării interne a codului aplicației a devenit cunoscută în avans. Tehnicile de programare orientate pe obiecte sunt utilizate de obicei pentru a furniza un cadru (de exemplu, părți ale unei aplicații pot fi moștenite din clasele de bază ale cadru).

Unul dintre primele cadre de aplicații comerciale a fost MacApp , scris de Apple pentru „ Macintosh ”. Creat inițial cu o versiune extinsă (orientată pe obiecte) a limbajului „ Object Pascal ”, a fost ulterior rescris în „ C++ ”. Alte cadre populare „Macintosh” includ:

În diferite grade, cadrele de aplicație sunt „ Cocoa ” pentru Mac OS X , precum și cadrele gratuite care există ca parte a proiectelor Mozilla , OpenOffice.org , GNOME și KDE .

Microsoft a creat un produs similar pentru „ Windows ” numit Microsoft Foundation Classes (MFC). În prezent, produsul emblematic al Microsoft pentru dezvoltarea de software este „ .NET ”.

Cadrele de aplicații multiplatforme (pentru sistemele de operare Linux , Macintosh și Windows) sunt, de exemplu, widget toolkit , wxWidgets , Qt , .NET , MyCoRe sau FOX toolkit .

Cadrul modelului conceptual

Un concept abstract de structură care este utilizat în cercetare pentru a identifica modalități posibile de a rezolva o problemă sau de a reprezenta o idee.

Implementarea cadrului

Un „cadru” este definit ca un set de clase și definiții concrete și abstracte ale modului în care interacționează. Clasele concrete implementează de obicei relații reciproce între clase. Clasele abstracte sunt puncte de extensie în care cadrele pot fi utilizate sau adaptate.

Un punct de extensie  este acea „parte” a cadrului pentru care nu se oferă nicio implementare. În consecință, cadrul unui model conceptual constă din clase conceptuale , iar cadrul unui sistem software constă din clase ale unui limbaj de programare cu scop general.

Procesul de creare a unui cadru este de a selecta un subset de sarcini ale problemei și implementările acestora. În cursul implementărilor, instrumentele generale de rezolvare a problemelor sunt conținute în clase concrete, iar instrumentele mutabile sunt mutate în punctele de extensie.

Vezi și

Note

  1. V. Faronov. Crearea de aplicații cu C#, Moscova, EKSMO, 2008, p. 12
  2. Metode și tehnologii de reinginerie SI. K. V. Akhtyrchenko, T. P. Sorokvasha Arhivat 3 august 2009 la Wayback Machine , Institutul pentru Programarea Sistemelor RAS
  3. 1 2 Gorbunov-Posadov M. M. Programe extensibile . - M . : Poliptic, 1999. - 336 p. — ISBN 5-901-11801-4 . Arhivat pe 20 septembrie 2012 la Wayback Machine
  4. Martin Fowler. InversionOfControl  . _ Consultat la 5 noiembrie 2013. Arhivat din original la 23 ianuarie 2011.