J'essaie toujours de me familiariser avec les modèles de conception et, pour la deuxième fois, je me heurte au même problème qui semble réclamer une solution basée sur un modèle.
J'ai un système de comptes avec plusieurs types de comptes. Nous avons des types de comptes restaurant, hôtel, fournisseur de services et consommateur. Je suis sûr qu'il y aura d'autres types de comptes professionnels à l'avenir, et bien sûr, il y a un compte d'administrateur global.
Je me demande donc comment mettre en œuvre le changement de type de compte. Par exemple, chaque compte aura un ou plusieurs profils, mais le profil sera différent selon le type de compte. Quel type de relation de classe dois-je utiliser ici pour gérer les multiples types de compte - polymorphisme ou héritage ?
Il semble qu'il devrait y avoir une classe de profil de base abstraite que les autres profils devraient étendre, mais je ne suis pas sûr de savoir comment l'implémenter (par exemple, une table de jointure entre les types de profils et les types de comptes ?)
C'est aussi l'occasion de mettre en œuvre le modèle de l'usine, mais je ne sais pas vraiment comment m'y prendre.
Des idées, s'il vous plaît ?
*
*
Modifié pour fournir quelques exemples, comme suggéré :
Account -> hasMany -> Users
Account -> belongsTo -> AccountType
Account -> hasOne -> Profile
Le profil est différent selon le type de compte, par exemple un compte de type restaurant aura un menu, une carte des vins, etc., un compte de type hôtel aura des types de chambres, des équipements, un compte de type consommateur aura des goûts personnels, un pays d'origine, etc.
La question était de savoir quel modèle de conception permettrait le mieux de mettre en œuvre ces relations.
J'espère que c'est plus clair, merci !