Bonjour à tous,
Je me pose une question d'ordre philosophique. J'ai plusieurs collections d'object qui ont toutes des interactions entre elles.
Je présente un exemple simple parmis tant d'autres pour comprendre et vous verrez ou je veux en venir : si je supprime un objet de collection1 je doit aussi supprimer un ou plusieurs objets de collection2 et bien sûre il y a plusieurs façon de faire :
1) la méthode (non POO) qui consiste à exécuter les opérations dans le corps du programme principale (en dehors des classes), je la présente mais il n'y a pas grand chose à dire dessus puisque je ne l'utilise pas (ou plus) :
2) Méthode avec référence à un parent (en l’occurrence une classe Projet), (Je fait abstraction des New et je simplifie l'écriture code pour pas trop charger la lecture) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub Main Collection1.Remove(Key1) Collection2.Remove(ObjetA) Collection2.Remove(ObjetB) End Sub
Tous mes objets et toutes mes collections font référence à "Projet", cela facilite toutes mes interactions puisque "Projet" référence toutes les collections.
Je pense que c'est déjà un peu plus POO sauf que je "décore" mes classes de collections avec des méthodes pour implémenter de la logique métier dans mes classes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Public Class Projet Public Property Collection1 as Collection1 Public Property Collection2 as Collection2 End Class Public Class Collection1 Public Parent as Projet Public Sub Remove(Key as Integer) me.Projet.Collection2.Remove(ObjetA) me.Projet.Collection2.Remove(ObjetB) End Sub End Class Public Class Collection2 Public Parent as Projet End Class
et c'est la que cela me chagrine car beaucoup d'ouvrage conseil de créer une BLL, oui mais en gros c'est quoi une BLL ? C'est une classe unique que j'implémente avec une centaine de méthode pour gérer toute la logique métier ? Je sais par expérience que ce n'ai pas bon du tout de mettre beaucoup de code au même endroit. Perso je résonne beaucoup par "Qui est responsable de quoi ?" et mon code s'en retrouve "éclaté" en plein de petites méthodes rangés dans les bonnes classes.
Je parle surtout de mes collections d'object, est ce que celles ci ne représentent pas déjà ma BLL que je pourrait mettre dans un Namespace BLL ?
(Mes objets, eux, sont moins impactés par ces interactions, on peux dire qu'ils ressemblent à des DTO je pense.)
Malgré cette question sur la BLL, j'utilise justement aussi (en plus de la méthode 2) une BLL mais pas pour ma logique métier, elle me sert juste à centraliser tous les messages (Events) qui proviennent de mes objets et de mes classes pour jouer le rôle d'interface avec l'UI.
Alors ou est la vérité ? Est ce que vous pensez qu'il y a un truc qui m’échappe dans mon résonnement ? je pose la question car j'ai tous le temps cette idée de BLL unique en tête et ça m’empêche d'avancer sereinement...
Merci beaucoup de m'avoir lu et j’espère que j’aurais quelques réponses.
Merci à vous d'avance.
Partager