Interfaces enable you to separate the definition of objects from
their implementation
La définition des objets dans ce cas fait référence à la partie publiquement exposée d'un objet. Dans l'exemple ci-dessous, il fait référence aux propriétés publiques Name/Age
et aux méthodes publiques Insert
et Update
. Dans la classe ci-dessous, la définition de Person et son implémentation (code utilisé pour implémenter les propriétés et méthodes) est la même que la classe Person.
Class Person
{
private string _name; //private fields
private string _age; //private fields
public Name {get {....} set {.....}} //public properties
public Age {get {....} set {.....}} //public properties
public void Insert() {.......} //public methods
public void Update() {.......} //public methods
}
NOTE: « ........ » représente le code réel qui sera appelée lorsque ces propriétés/méthodes sont invoquées i.e. leur mise en œuvre.
Maintenant, si je devais faire créer une interface pour cette appelé
Interface IPerson
{
public Name get; set; //public properties
public Age get; set; //public properties
public void Insert(); //public methods
public void Update(); //public methods
}
puis faire Class Person : IPerson
alors ce que je l'ai fait est que je suis maintenant séparé la définition à savoir IPerson
du i.e. de mise en œuvre Person
.
NOTE: Pourquoi est-ce utile est déjà couvert par Aamir et Gravell dans leurs réponses ci-dessus pour que je répète la même coutume
cette question pourrait vous aider à éclaircir les choses un peu: http://stackoverflow.com/q/1335586/13198 – TheVillageIdiot
Puis-je aussi savoir ce que fait la "définition d'objets" dans la ligne ci-dessus? – Soja
Merci à tous pour votre temps et votre aide. – Soja