Sobre els Objects: què són i com funcionen?
Val la pena dedicar unes línies a què són els Objects i com es diferencien dels Components.
Els Objects són abstraccions de disseny, és a dir, no estan lligats a una maquetació concreta i només responen a un patró de disseny reutilitzable.
L'exemple més representatiu és el Media Object, una abstracció de disseny utilitzada molt habitualment (i inclosa en la implementació de Normandy).
Els Objects tenen principalment dos objectius:
Separar l'estructura de la vista. L'estructura i el posicionament són tasques dels Objects, mentre que les característiques visuals són responsabilitat dels Components.
Separar el contenidor del contingut. No cal imitar l'estructura de l'HTML al CSS. És molt més útil definir classes que descriuen l'ús d'un tag HTML. En aquest cas, l'Object és el contenidor i els Components són el contingut.
Un Object inclourà atributs CSS relacionats amb la distribució i el posicionament i no estils cosmètics.
Single Responsibility Principle i Open/Closed Principle
Dels 5 principis SOLID, els Objects en segueixen bàsicament dos:
Single-responsibility Principle. Un Object té una responsabilitat i cap altra, amb els beneficis que això comporta de facilitat de manteniment i extensibilitat.
Open-Closed Principle. Un Object està obert a extensions i tancat a modificacions. Mai s'ha de modificar un Object: si un Object no encaixa a la implementació d'un element de la UI, probablement és perquè no s'ha de fer servir. Sí que està permès, en canvi, afegir modificacions a un object (mantenint la separació de responsabilitats) per afegir-hi un comportament opcional.
A diferència dels Objects, els Components no són abstraccions de patrons de disseny sinó implementacions concretes de la UI.