Lukas: Funktion in Klassen

Hi,

ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?

danke
mfg Lukas

  1. Hi,

    ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?

    Meinst du

    • eine Methode mit dem selben Namen
    • die selbe Funktionalität
    • ...?

    Drücke dich bitte etwas deutlicher aus, als mit einem knappen Einzeiler, der (zu) viel Interpretationsspielraum lässt.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Hallo,

    ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?

    Vererbung?

    Grüße

  3. Lieber Lukas,

    ist es möglich dieselbe Funktion in mehreren Klassen zu integrieren?

    jein. Ist doch offensichtlich, oder?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  4. 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

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    1. 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

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. 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

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
        1. 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

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. 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

            --
            "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
            1. 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

              --
               ☻_
              /▌
              / \ Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
  5. 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.