J'ai un BaseDataClass avec des champs partagés et lesune classe de base avec des champs partagés et les bonne conception
Protected Shared dbase as SqlDatabase
Protected Shared dbCommand as DBCommand
...
//also have a sync object used by the derived classes for Synclock'ing
Protected Shared ReadOnly syncObj As Object = New Object()
Protected Shared Sub Init() //initializes fields, sets connections
Protected Shared Sub CleanAll() //closes connections, disposes, etc.
J'ai plusieurs classes qui dérivent de cette classe de base. Les classes dérivées ont toutes les fonctions Shared
qui peuvent être appelées directement à partir de la BLL sans instanciation.
Les fonctions de ces classes dérivées appellent la base Init(), appellent leurs procédures stockées spécifiques, appellent la base CleanAll() et renvoient les résultats.
Donc si j'ai 5 classes dérivées avec 10 fonctions chacune, totalisant 50 appels de fonction possibles, puisqu'ils sont tous Shared
, le CLR n'appelle qu'un seul à la fois, n'est-ce pas? Tous les appels sont mis en file d'attente pour attendre que chaque fonction Shared
soit terminée.
Y a-t-il une meilleure conception avec des fonctions Shared
dans votre DAL et des fonctions de classe de base? Ou puisque j'ai une classe de base, est-il préférable de se déplacer vers des méthodes d'instance au sein de la DAL?