Dans une application 3 couches, du point de vue conception/architecture, est-ce que je peux/devrais instancier une classe business (qui réside dans Business Layer) dans Presentation Layer? Je veux dire, est-ce une mauvaise pratique? Si oui, alors comment faire référence à un objet métier à partir du calque de présentation? Par exemple, comment je vais enregistrer un objet "Employé" dans un état de session si je ne peux pas le créer dans le calque de présentation (code-behind).)?Utilisation de l'objet métier dans la couche de présentation
2
A
Répondre
1
Si vous n'instanciez pas l'objet métier dans la couche de présentation, comment l'appelleriez-vous? Donc vous devrez le faire. Bien sûr, si vous souhaitez que le code de la couche de gestion s'exécute ailleurs, vous pouvez penser aux services. Mais encore, à ce moment-là, vous devez instancier le proxy à partir de la couche business/service uniquement. Alors allez-y.
ya, infact je fais toujours ça, mais je vois un argument précédent sur ce sujet, ici dans stackoverflow. certains disent qu'il rend la conception étroitement couplée, et à propos de l'utilisation d'une interface exposée par la couche de gestion ou en utilisant des DTO, etc .. en tant que programmeur amature/novice je suis un peu confus si je fais mal ou bien (encore une fois, du meilleur point de vue de conception). – atiyar
Ce que vous dites est vrai. Si vous souhaitez garder le couplage très lâche, n'instantiez jamais une classe directement. Plutôt toujours utiliser une interface et éventuellement une méthode d'usine assez configurable pour réellement instancier vos classes. Les données à envoyer d'une couche doivent toujours utiliser DTO et vous pouvez réellement dériver votre DTO à partir d'une interface. Cela vous rendra la vie facile si vous avez besoin de changer le DTO dans le futur. – Kangkan