dimanche 5 janvier 2014

Principe CABIN pour la construction d'objets

J'avais déjà écrit un article ici même, sur ce qu'était un bon code objet.
Avec plus d'expérience et de créativité, j'ai une opinion plus tranchée que j'implémente dans mes applications et, qui je le souligne ne concerne que ma propre opinion.

Passons à table! Qu'est ce qu'un objet?

Un objet pour moi, n'est rien de plus qu'une interface avec laquelle on interragit avec une forme concrète appartenant à une famille abstraite de conteneurs.
Exemple, lorsque j'utilise mon smartphone, j'utilise une interface téléphonique implémentée dans un conteneur au design concret par lequel je peux jouir de l'objet.

Ce qui veut dire que pour être un véritable objet, une classe concrète doit étendre une classe abstraite qui doit implémenter une seule interface générique qui remplit un seul rôle.

Toute classe concrète ne suivant pas ce principe, ne peut être qualifiée d'objet, mais peut-être de trait, ou de tout, mais pas d'objet.

Cela me parait évident, mais je ne l'ai que rarement vu en action dans les codes sources disponibles au sein des frameworks, ou librement sur le net.

Pourtant, ce serait là un excellent moyen de mettre en pratique plus aisément les différents design patterns, mais surtout les principes SOLID et GRASP.

J'ai donc décidé de définir un code object par un principe simple.
CABIN pour Concrete ABstract INterfaces.

J'ai hâte de pouvoir en discuter un peu plus ultérieurement.

Aucun commentaire:

Enregistrer un commentaire