Le polymorphisme et les Interfaces en Java (polymorphisme peut être utilisé pour implémenter les interfaces...pourquoi?)
Dans le monde réel ce que font les gens de les utiliser pour (pour résoudre ce type de problèmes)? Puis-je voir un exemple de code du travail, ensemble? Tout ce que je peux trouver est code sur les chats et les chiens de parler ou de gens boire de lait ou de café...
- Il vraiment mettre en œuvre polymorphisme avec des interfaces? Pour quoi?
- Pour utiliser le Chat et le Chien exemple (soupir, je sais)... Ne pense pas que de transformer un Chat un Chien. Pense que de traiter un Chat comme vous le feriez pour tout autre animal. De cette façon, si quelqu'un décide de vous donner un Chien pour une journée, vous pouvez faire les mêmes choses que vous feriez avec un Chat.
feed(Food f)
il.ensureBathroomCapabilities()
pour elle.play(Toy t)
avec elle. Ne pas faire quelque chose pour un Chat, vous ne pouvez pas le faire à un Chien. - Lisez à propos de la Conception de Modèles à wikipédia. Ils sont incroyablement utiles et souvent faire usage de polymorphisme avec des interfaces en.wikipedia.org/wiki/Design_pattern_(computer_science)
Vous devez vous connecter pour publier un commentaire.
Sûr,
Ci-dessous est l'exemple concret de la "Observateur" de modèle, à l'aide de classes et interfaces pour accomplir le comportement polymorphique dans un système enregistreur de:
Ensuite, vous pouvez l'utiliser comme suit:
Espère que cela aide votre compréhension des interfaces et polymorphisme.
Si, en bas de la route, je décide de la surcharge de la mémoire de la table de hachage, c'est trop, je peux re-faire une TreeMap, et de vivre avec un peu plus cher recherche fois
Parce que peopleByName est une Carte, pas un TreeMap ou une table de hachage, tous mes appels sont garantis de travailler sur la carte quel que soit mise en œuvre.
Ce fait est illustré par l'exemple suivant
Dire dans cet exemple, RequestProcesor n'a pas besoin de connaître les implémentations de la Demande et de la Réponse
Ont un oeil sur le code de la Carte/AbstractMap/HashMap comme un exemple. Vous trouverez des milliers d'autres exemples dans le JDK source qui est livré avec le JDK (en src.zip)
imaginer "quelqu'un" a conçu un vaste programme, avec lotsa code. supposons que "quelqu'un" interfaces utilisées dans la conception de certains de la logique du contrôleur. maintenant, vous êtes embauché pour travailler avec ce code qui vous n'avez jamais vu avant. vous êtes invité à concevoir une nouvelle classe de contrôleur. tout ce que vous devez faire maintenant est de mettre en œuvre l'interface et la rendre toutes ses méthodes de travail.
si quelqu'un n'avait pas utilisé les interfaces, alors non seulement vous avez la refonte du contrôleur, mais vous auriez probablement besoin de redessiner potentiellement l'ensemble du projet, car il est très fort couplage entre le contrôleur de classe et le reste de la classe. cela vous prendra des mois juste pour comprendre le code, pour ne pas mentionner la nouvelle série de bugs que vous auriez probablement introduire..
Presque n'importe quelle application Java avec une interface graphique utilise (mais bien sûr pas seulement GUI...). Par exemple, regardez la source de android VideoView (c'est la première qui vient à mon esprit...)
Une autre suggestion, je serais pour "le monde réel", est dans l'utilisation de spring batch. Si vous avez utilisée couramment dans le format de rapport qui suit un modèle de type "pull de données, la création de rapports, de les envoyer à des destinataires", vous pouvez créer une interface pour vos rapports qui veille au respect de cette norme. En ce sens, il fonctionne comme un "modèle" que tous les lots les rapports de la suivre.
Un ennuyeux exemple, mais c'est quelque chose que j'ai rencontrés dans ma première année...
Avez-vous demandé comment LINQ dans .net fonctionne ? Il est tout au sujet des Interfaces et polymorphisme.
Vous avez besoin de travailler sur des projets puis vous arriverez à connaître à propos de tout cela.