Disons que j'ai une classe Customer, qui a une propriété customerType.Appliquer les règles métier de la couche de service aux modifications de propriété d'entité ou masquer la propriété d'entité des clients mais pas du service?
J'ai une autre classe appelée quelque chose comme SpecialContract, qui a un client et d'autres propriétés.
Si customer.customerType == SPECIAL, il existe un contrat spécial qui fait référence à ce client particulier.
Maintenant je me rends compte que c'est un peu hoaky, mais je ne veux pas maintenir une relation du client à SpecialContract pour quelques raisons, l'une étant que la plupart du temps lorsque vous travaillez avec des clients dont nous n'avons pas besoin pour charger SpecialContracts et toutes les autres données associées à SpecialContracts. Cependant, je veux toujours savoir si un client a un contrat spécial, et ceci est réalisé grâce à sa propriété customerType.
Ok, voici la partie difficile. Je ne veux pas que le client puisse définir customerType, car cela ne supprimera pas le contrat spécial qui s'applique au client, ce qui serait nécessaire. Je préfère forcer le client à appeler une méthode de service pour supprimer le contrat spécial, qui définirait également le customerType à NOTSPECIAL en une seule transaction.
Comment puis-je masquer l'accesseur customerType des clients, tout en l'exposant à la classe de ma couche de service qui sera chargée de définir la valeur correcte et de supprimer le contrat spécial? Ma classe de service n'est pas dans le même package que la classe Customer.
semble que vous devez garder un œil sur ces dépendances ... –