Interfață (model de design)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 1 iulie 2018; verificările necesită 2 modificări .
Interfață
Interfață
Descris în Design Patterns Nu

Interfața ( ing.  interfață ) este un model de proiectare de bază , care este o metodă generală de structurare a programelor de calculator pentru a le face mai ușor de înțeles. În general, o interfață  este o clasă care oferă un mod simplu sau mai specific programului pentru programator de a accesa alte clase.

O interfață poate conține un set de obiecte și poate oferi funcționalități simple, de nivel înalt pentru programator (de exemplu , Facade Pattern ); poate oferi o modalitate mai curată sau mai specifică de a utiliza clase complexe (" clasa de înveliș "); poate fi folosit ca " clei " între două API-uri diferite ( Adaptor de model ); și pentru multe alte scopuri.

Alte tipuri de modele de interfață sunt: ​​Model de delegare , Model de linker și Model de punte .

Exemple

C++

Spre deosebire de Java, unde interfețele sunt comune, acest model nu este adesea folosit în C++. Cu toate acestea, uneori poate ajuta la reducerea dependențelor. Pentru bibliotecile care folosesc clase wrapper pentru a ascunde detaliile interne de implementare, modelul „interfață” poate îmbunătăți lizibilitatea codului.

Deoarece clasa Facade este o interfață de bibliotecă, fișierul său h trebuie să fie disponibil utilizatorului bibliotecii. Prin urmare, trebuie plasat în directorul include al bibliotecii. Dar această clasă Fațadă are nevoie probabil de unele proprietăți ale altor clase din bibliotecă. Prin urmare, fișierul său h trebuie să includă fișiere h din alte clase. Aceasta înseamnă că și aceste fișiere trebuie să fie disponibile, deci trebuie să fie plasate și în directorul de includere al bibliotecii. Și acest lucru încalcă strategia de definire a unei singure interfețe de bibliotecă în directorul include. Această dificultate poate fi rezolvată folosind modelul de interfață.

Pentru a implementa o interfață la o clasă , Atrebuie să implementați o clasă A_Interfacecare va defini metodele publice ale clasei Aca funcții abstracte. Clasa Atrebuie să fie moștenită de la A_Interface. Nu uitați să declarați destructorul A_Interface ca fiind virtual!

În acest caz, fișierul antet (fișierul .h) al clasei Apoate fi localizat în directoarele sursă ale bibliotecii, în timp ce fișierul antet al clasei A_Interfaceva rămâne în directorul include.

Deoarece clasa de interfață este abstractă și clasa care implementează interfața nu este cunoscută din afara bibliotecii, Aeste necesară o fabrică pentru a crea obiecte de clasă. Este logic să creați o metodă de clasă A_Interfacecare să funcționeze ca o metodă din fabrică.

Vezi și

Literatură