à la page 13 Dans le livre GOF, il y a une déclaration:
Two objects of the same type need only share parts of their interfaces.
3 Réponses :
Je ne sais pas ce que cela signifie car je n'ai pas le livre. Mais une interface est la méthode des signatures de la classe, combinées aux variables publiques. En tant que sous-type d'un type particulier, est également un type de sa classe mère, il peut avoir des méthodes que le parent ne possède pas, mais ne partage donc qu'une partie de l'interface du parent. Je n'ai aucune idée si c'est en fait ce que cela parlait cependant. P>
Dans leur langue, un objet interface em> est le contrat public complet de l'objet (ne pensez pas la mise en œuvre de la langue ici). L'ensemble de toutes les signatures définis par un objet est appelé l'interface a type em> est plus comme ce que vous penseriez comme une interface déclarée ... p> A Imagine: P>
public class Foo : IBar, IBaz {}
public class Fuz : IBar, IBuz {}
Ouais, c'est probablement exactement ce que signifiait là-bas, votre réponse est très claire
Un devis plus complet est: p>
Un type est un nom utilisé pour désigner une interface particulière. Nous parlons d'un objet comme ayant la "fenêtre" de type si elle accepte toutes les demandes de Opérations définies dans l'interface nommée "fenêtre". Un objet peut Avoir de nombreux types et des objets largement différents peuvent partager un type. Partie d'une interface d'un objet peut être caractérisé par un type, et d'autres parties par d'autres types. Deux objets du même type n'ont besoin que de partager parties de leurs interfaces. Les interfaces peuvent contenir d'autres interfaces comme sous-ensembles. P> blockQuote>
Et assez clairement, je pense que cela parle de multiples héritage. Par exemple, vous pourriez avoir
textwindow code> etmenuWindow code> que la sous-classefenêtre code> avec d'autres classes. Les deux objets peuvent être pris en compte, dans le sens où ils utilisent, pour avoir "type"fenêtre code>, et ils implémenteront les opérations associées à ce type - ils auront tous les deuxfenêtre code > Méthodes. maistextwindow code> peut également sous-classementtexteditor code> tandis queMENUWINDOW code> ne fait pas, donc leur ensemble total de méthodes strong> (ce qu'ils veulent dire par "Interface") ne sont pas identiques, même si la fenêtreWindows code> chevauche. p>
«Interfaces» comme nous le connaissons maintenant n'étaient pas dans un usage généralisé à l'époque. Peut-être que GOF signifiait simplement que 2 objets de la même classe devraient se limiter aux méthodes de classe exposées.