Classes imbriquées, remonter les évènements
Bonjour,
J'ai un soucis et j'aimerai savoir ce que vous me proposeriez comme solution:
Imaginons ces 2 classes.
La classe B joue le rôle de connecteur vers un serveur.
Lorsque j'appelle la méthode "connect", je me connecte au serveur et je renvoie une information qui indique que la connexion a été établie.
La classe A utilise une instance de mon connecteur.
Par contre je ne souhaite pas que mon connecteur soit visible si un développeur utilise une instance de A, donc je mets la propriété en privée.
Par contre je veux que mon développeur puisse avoir les retours des évènements qui se génère depuis la classe B, en utilisant l'instance de A.
Je n'ai rien trouvé de mieux que dupliquer les définitions de mes délégués et évènements. Auriez vous une meilleure idée ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
// -- Utilisation des classes par un développeur tiers dans son application
// ------------------------------------------------------------------------------
A myClientConnection = new A();
myClientConnection.onConnectionSuccess += connection_successfull;
public class A
{
public delegate void connectionDlg();
public event connectionDlg onConnectionSuccess;
private B connector;
public A()
{
connector= new B();
connector.onConnectionSuccess += connection_ok;
connector.connect();
}
private void connection_ok()
{
if(onConnectionSuccess != null)
onConnectionSuccess();
}
}
public class B : ICallback
{
public delegate void connectionDlg();
public event connectionDlg onConnectionSuccess;
public void connect()
{
if(onConnectionSuccess != null)
onConnectionSuccess();
}
public void testConnection(){} // -- issue de l'interface
} |