Une interface vous attendre à ce que certaines méthodes pour être présent et standardisé dans tous les objets; c'est le point d'une interface ou une classe de base abstraite, ou quel que soit mise en œuvre que vous envisagez.
Par exemple (Java), on peut avoir une interface pour le chiffrement symétrique comme suit:
public interface cipher
{
public void encrypt(byte[] block, byte[] key);
public void decrypt(byte[] block, byte[] key);
}
Ensuite, vous pouvez la mettre en œuvre:
public class aes128 implements cipher
{
public void encrypt(byte[] block, byte[] key)
{
//...
}
public void decrypt(byte[] block, byte[] key)
{
//...
}
}
Il est alors possible de déclarer un objet de la sorte:
cipher c;
Qu'avons-nous fait ici? Eh bien, nous avons créé cet objet c
dont le type doit correspondre à celle de l'interface. c
pouvez faire référence à quelque chose qui correspond à cette interface, de sorte que, à l'étape suivante:
c = new aes128();
Vous pouvez maintenant appeler les méthodes que vous attendez d'un cipher
à avoir.
C'est de java. Maintenant, voici ce que vous devez faire en python:
class aes128(Object):
def __init__(self):
pass
def encrypt(self, block, key):
# here I am going to pass, but you really
# should check what you were passed, it could be
# anything. Don't forget, if you're a frog not a duck
# not to quack!
pass
Lorsque vous souhaitez utiliser, et vous n'êtes pas sûr que l'objet que vous avez été transmis, juste essayer de l'utiliser:
c = aes128()
try:
c.encrypt(someinput, someoutput)
except:
print "eh? No encryption method?!"
Ici, vous êtes en s'appuyant sur c.chiffrer la mise en œuvre d' raise
si il ne peut pas gérer ce qu'il a été adopté, si la méthode existe. Bien sûr, si c
est un type de chaîne et n'est donc pas le type dont vous avez besoin, il va également lancer automatiquement, et vous attraperez (espérons-le).
En bref, une forme de programmation est tapé tel que vous avez à obéir à l'interface des règles, l'autre est en train de dire que vous n'avez même pas besoin de les écrire, il vous suffit de faire confiance que si il n'a pas d'erreur, il a travaillé.
J'espère que vous montre la pratique, la différence entre les deux.