J'essayais de séparer mon DAL de mon Couche Métier et, ce faisant, j'ai décidé d'éviter toute approche ActiveRecord et d'adopter une approche DataMapper. En d'autres termes, les objets de mon domaine ne prendraient pas soin de leur propre persistance. Ce faisant, je semble empiéter sur l'anti-pattern «anemic domain model». Par exemple, l'une des entités de mon programme est une organisation.Faire face à un modèle de domaine anémique
Une organisation est représentée comme quelque chose comme ceci:
class Organization {
private $orgId;
private $orgName;
// getters and setters
}
Donc, fondamentalement, cette organisation ne fait rien d'autre que d'agir comme « sac » (comme Martin Fowler dit) pour certaines données. Dans le monde PHP, ce n'est rien de plus qu'un tableau glorifié. Il n'y a aucun comportement associé.
Et le comportement dans le programme, j'ai été coller dans la classe "niveau de service" comme un OrganizationService qui sert principalement d'intermédiaire entre ces objets et le DAL.
Outre les problèmes de mise à l'échelle potentiels avec PHP (j'ai d'autres raisons pour lesquelles j'insiste pour «mettre en sac» mes données dans ces objets), cette approche est-elle totalement désactivée?
Comment gérez-vous vos modèles de domaine dans ces situations? Peut-être qu'une organisation ne fait pas partie de mon domaine en premier lieu?
Comment pouvez-vous avoir une méthode AssociateEmployee dans le modèle de domaine, si le modèle de domaine n'a pas accès à un DataMapper? – bestattendance