Funktion in Klassen
Lukas
- php
Hi,
ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?
danke
mfg Lukas
Hi,
ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?
Meinst du
Drücke dich bitte etwas deutlicher aus, als mit einem knappen Einzeiler, der (zu) viel Interpretationsspielraum lässt.
MfG ChrisB
Hallo,
ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?
Vererbung?
Grüße
Lieber Lukas,
ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?
jein. Ist doch offensichtlich, oder?
Liebe Grüße,
Felix Riesterer.
Hi!
ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?
Klassen haben Methoden. Dieselbe Methode in mehreren Klassen zu haben ist möglich, aber nicht wirklich sinnvoll: don't repeat yourself!
Vererbung (als Ausnahme) und Objektkomposition existieren, um so etwas zu vermeiden.
Falls Du etwas anderes gemeint hast: wirf ruhig ein paar Buchstaben zusätzlich ins Forum - es kostet nicht mehr.
off:PP
Hello,
ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?
Klassen haben Methoden. Dieselbe Methode in mehreren Klassen zu haben ist möglich, aber nicht wirklich sinnvoll: don't repeat yourself!
Dieselbe nicht, aber die Gleiche ist schon sinnvoll und durchaus üblich in der OOP.
Ich denke da im einfachsten Fall an toString().
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?
Klassen haben Methoden. Dieselbe Methode in mehreren Klassen zu haben ist möglich, aber nicht wirklich sinnvoll: don't repeat yourself!
Dieselbe nicht, aber die Gleiche ist schon sinnvoll und durchaus üblich in der OOP.
Damit wäre einer der Hauptvorteile der OOP für die Katz - in der Praxis wird leider zu oft mit Copy&Paste-Orgien die selbe Logik an vielen Stellen implementiert. Wenn man "don't repeat yourself" einigermaßen ernst nimmt, kann man eine Menge an Codebasis einsparen. Das war mein Punkt.
Ich denke da im einfachsten Fall an toString().
Die Implementierung von toString() (oder hier im PHP-Kontext als Interzeptor __toString() ) ist durchaus sehr differenziert - der Sinn dieser Methode besteht doch gerade darin, *unterschiedlichste* Objekte als String zu repräsentieren. Dies erfordert auch eine unterschiedliche Implementierung der Methode.
off:PP
Hello,
ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?
Klassen haben Methoden. Dieselbe Methode in mehreren Klassen zu haben ist möglich, aber nicht wirklich sinnvoll: don't repeat yourself!
Dieselbe nicht, aber die Gleiche ist schon sinnvoll und durchaus üblich in der OOP.
Damit wäre einer der Hauptvorteile der OOP für die Katz - in der Praxis wird leider zu oft mit Copy&Paste-Orgien die selbe Logik an vielen Stellen implementiert. Wenn man "don't repeat yourself" einigermaßen ernst nimmt, kann man eine Menge an Codebasis einsparen. Das war mein Punkt.
Ich denke da im einfachsten Fall an toString().
Die Implementierung von toString() (oder hier im PHP-Kontext als Interzeptor __toString() ) ist durchaus sehr differenziert - der Sinn dieser Methode besteht doch gerade darin, *unterschiedlichste* Objekte als String zu repräsentieren. Dies erfordert auch eine unterschiedliche Implementierung der Methode.
Deshalb ist es auch nur die gleiche Methode und nicht dieselbe.
Die zu erstellende und in der Prototypklasse deshalb obligatorisch deklarierte Methode muss in der eigentlichen Klasse definiert werden. Sie hat dieselbe Wirkung zu zeigen, wie die gleichlautenden Methoden in allen anderen (davon abgeleiteten) Klassen, muss aber auf das Objekt angepasst werden.
Sonst könnte man ja außer der Deklaration auch gleich die Definition vererben.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
Damit wäre einer der Hauptvorteile der OOP für die Katz - in der Praxis wird leider zu oft mit Copy&Paste-Orgien die selbe Logik an vielen Stellen implementiert. Wenn man "don't repeat yourself" einigermaßen ernst nimmt, kann man eine Menge an Codebasis einsparen. Das war mein Punkt.
Ich denke da im einfachsten Fall an toString().
Die Implementierung von toString() (oder hier im PHP-Kontext als Interzeptor __toString() ) ist durchaus sehr differenziert - der Sinn dieser Methode besteht doch gerade darin, *unterschiedlichste* Objekte als String zu repräsentieren. Dies erfordert auch eine unterschiedliche Implementierung der Methode.
Deshalb ist es auch nur die gleiche Methode und nicht dieselbe.
IMHO ist es nicht einmal die gleiche - sie heißen eben gleich. Danach wird OP aber doch hoffentlich nicht gefragt haben, oder?
off:PP
Hello,
Ich denke da im einfachsten Fall an toString().
Die Implementierung von toString() (oder hier im PHP-Kontext als Interzeptor __toString() ) ist durchaus sehr differenziert - der Sinn dieser Methode besteht doch gerade darin, *unterschiedlichste* Objekte als String zu repräsentieren. Dies erfordert auch eine unterschiedliche Implementierung der Methode.
Deshalb ist es auch nur die gleiche Methode und nicht dieselbe.
IMHO ist es nicht einmal die gleiche - sie heißen eben gleich. Danach wird OP aber doch hoffentlich nicht gefragt haben, oder?
Es sollte in einer sauberen Klassensammlung aber die gleiche sein, weil sie üblicherweise die gleiche Wirkung zu zeigen hat. Ob sie das dann auch tatscählich tut, liegt sicherlich wieder an den Grenzen der Programmiersprache und ihrer Umsetzung. Hier ist auch OOP am Ende, wenn der Programmierer nicht mitspielt und keine Disziplin hält.
Deshalb würde ich hier Namensgleichheit auch mit "gleiche Methode" oder "_die_ Methode für etwas Bestimmtes" übersetzten wollen.
Der OP hat sicherlich etwas ähnliches gemeint, dachte dabei aber vermutlich nicht an OO-Programmierung, sondern einen OOP-Click & Bunti-Kasten, bei dem man nicht mehr überlegen muss, sondern nur noch zusammenklicken.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi,
ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?
danke
mfg Lukas
Ab PHP 5.4 wird das mittels Traits möglich sein.