tech · 2 min de lecture

Java Vs C# : Eviter les conflits de nom dans les interfaces

Comparaison de Java et C# sur les conflits de nom dans les interfaces

Hugo
Hugo29 mars 2011 · 2 min
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 :

java
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.

java
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.

Hugo

Écrit par

Hugo

Software Engineer with more than 20 years of experience. I love to share about technologies and startups

Vous avez aimé ce récit ?

Environ un mail par mois, quand un texte mérite d'être écrit. Vos lecteurs restent vos lecteurs.

208 abonnés · désabonnement en un clic

Réponses

0 Comments

No comments yet. Be the first to comment!