Conventions de nommage des classes de lien
-
Exemple pris en référence
Le présent article apporte des précisions quand au nommage orienté métier : la documentation de base sur la classe de lien explique le principe sans tenir compte de l’espace de nommage, ici nous verrons concrètement comment nommer votre trait et vos classes de lien dans le cas le plus complet.
Prenez connaissance de l’exemple dans l’article classe de lien. Pour résumé nous avions :
- deux classes métier
Order
etSalesman
- un trait pour la partie commune des classes de lien
Order_Salesman_Trait
- deux classes de lien
Order_Salesman extends Salesman
etSalesman_Order extends Order
Les noms utilisés pour ces classes dans l’exemple partent du principe qu’elles sont toutes dans le même espace de nommage, qui ne contiendrait aucune référence ni à
Order
niSalesman
. Si c’était le cas, il faudrait pour respecter les conventions de nommage éviter les répétitions.Par exemple
My\Application\Order\Order_Salesman
ne respecterait pas cette convention.Séparation métier et choix de l’emplacement de la fonctionnalité “lien entre commercial et commande”
Dans une architecture métier des dossiers et espaces de nommage, il faut choisir avec soin l’endroit où on stockera notre fonctionnalité.
Un lien entre deux classes constitue en terme de fonctionnalité un “pont” entre deux fonctionnalités : ainsi il va falloir choisir de stocker la fonctionnalité “lien entre commercial et commande”, soit sous la fonctionnalité commande, soit sous la fonctionnalité commercial, soit même en dehors. En fonction des cas métiers, on choisira l’un ou l’autre.
Dans le cas présent, le lien entre commerciaux et commandes a de l’intérêt principalement d’un point de vue commande. Le plus clair en terme d’organisation fonctionnelle est de le considérer comme cela.
L’arborescence des classes sera donc :
dossier = module fonctionnel namespace classe description my/application/sale/salesman My\Application\Sale Salesman La classe métier commercial seule my/application/sale/order My\Application\Sale Order La classe métier commande seule my/application/sale/order/salesman My\Application\Sale\Order Salesman Classe de lien : commercial vu depuis la commande my/application/sale/order/salesman My\Application\Sale\Order\Salesman Order_Salesman Trait pour les classes de lien my/application/sale/order/salesman My\Application\Sale\Order\Salesman Order Classe de lien : commande vue depuis le commercial my/application/sale/order/salesman My\Application\Sale\Order\Salesman Has_Orders Trait ajout des commandes dans un commercial - deux classes métier