Bonjour à tous,

Je suis confronté un petit soucis, dans un developpement en couche, je ne parviens pas à accéder aux méthodes de la couche inférieure autrement que par l'instanciation de sa classe (comme ceci) :

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
Imports BPL

Module ConsoleTest
    Sub Main()

        Console.WriteLine("Entre un chiffre")
        Dim ChiffreEnregistre As Integer
        ChiffreEnregistre = Console.ReadLine()

        Dim TrucInutil As New ChiffreService  
        Console.WriteLine(TrucInutil.MultiplicationParDeux(ChiffreEnregistre))

    End Sub

End Module
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Public Class ChiffreService
    Function MultiplicationParDeux(ByVal ChiffreEnregistre As Integer)
        Dim Resultat As Integer
        Resultat = ChiffreEnregistre * 2
        Return Resultat
    End Function
End Class
Les exemples sont volontairement simplistes, sinon je ne vais plus rien comprendre .

Je veux donc me débarasser de cette instanciation et plutôt utiliser l'injection de dépendance.

J'ai donc potassé, mais je pense n'avoir rien compris, jugez-en par vous-même :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Imports DAL
Imports BEL
 
Public Class UserService
 
    Private _repository As IUserRepository
 
 
    Public Function GetOneCustomer(ByVal chiffreEnregistre As Integer) As Integer
        Return _repository.GetMultiplicationParDeux(chiffreEnregistre)
    End Function
 
End Class
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Interface IUserRepository
    Function GetMultiplicationParDeux(ByVal chiffreEnregistre As Integer)
End Interface
 
 
Public Class UserRepository
    Implements IUserRepository
 
 
    Public Function GetMultiplicationParDeux(ByVal chiffreEnregistre As Integer) Implements IUserRepository.GetMultiplicationParDeux
        Return chiffreEnregistre * 2
    End Function
 
End Class
Qu'est-ce que je fais mal ? Comment dois-je m'y prendre pour accéder à des fonction d'une couche inférieure sans en instancier la classe ?

Merci