Arhive etichetă: Encapsulare

Uși

Encapsulare și delegare

Encapsularea:

Obiectele își văd de propria lor treabă și de ceea ce au de făcut în spatele ușilor închise. Ele oferă interfața prin care orice cerere (Request) și răspuns (Response) pot fi trecute. Orice date nu trebuie expuse și părțile murdare ale implementării, sunt ascunse în spatele acestor uși.

Un exemplu de delegare aplicat ar fi MVC-ul:

Controllerul, într-un proiect scris folosind OOP și MVC, este surprinzător de simplu și scurt, el invocând în general obiecte din clasele Model și oferind toate datele procesate unui View responsabil de modul expunerii datelor (HTML, Json, XML etc.). Ideal în Controller vom face invocarea Model-elor necesare doar folosind argumentele din Request și rezultatele vor fi oferite View-ului care ideal nu va procesa absolut nimic, ci doar va fi responsabil de afișare, adică un șablon (template) ce aplică valorile primite.

Conceptul este descris doar minimal, dar în realitate, el fiind aplicat extrem de complicat de menținătorii unora din cele mai populare framework-uri, ironie sau genialitate ce o voi lăsa pentru un articol dedicat acestui subiect.