Java Vs C# : Eviter les conflits de nom dans les interfaces
Warning, warning, ceci n'est pas une rubrique à troll !!
Bien qu'étant plutot spécialiste Java, je me suis mis récemment au C#. Loin des débats qui n'en finissent plus pour savoir lequel des deux p... le plus loin, je tenais à faire une petite rubrique pour lister "les trucs qui tuent" qui existent dans chaque langage et que tout bon développeur aime connaitre.
Et donc le truc qui tue du jour :
Eviter les conflits de nom dans les interfaces en C#
En java vous avez sans doute déjà eu affaire à des interfaces dont les noms rentrent en conflit, non ?
Dans le cas contraire, je vous propose un petit exemple :
public interface IInterface1
{
void execute();
}
public interface IInterface2
{
void execute();
}
public class MyClass implements IInterface1, IInterface2
{
public void execute()
{
// ??
}
}
Rageant n'est-ce pas ? Vous tentez de respecter un contrat identique défini par deux interfaces.
Et en C# ?
C# propose une solution intéressante à ce problème.
public interface IInterface1
{
void Execute();
}
public interface IInterface2
{
void Execute();
}
public class MyClass : IInterface1, IInterface2
{
void IInterface1.Execute()
{
Console.WriteLine("Execute de IInterface1");
}
void IInterface2.Execute()
{
Console.WriteLine("Execute de IInterface2");
}
}
On remarquera que les méthodes sont privées. Elles ne peuvent être appelées qu'à partir de l'interface. Ce qui est beaucoup plus propre.
Related Articles
You might also be interested in these articles
Java Vs C# : La gestion des exceptions
Comparaison de Java et C# sur la gestion des exceptions


