pl: Theorie und Praxis OOP

Beitrag lesen

Interfaces werden in Klassen implementiert, nicht geerbt, von einem Interface erben können nur Interfaces.

Das mag in PHP so sein. In Perl jedoch kann ich das auch anders machen, deswegen darf ich das immer noch Interface nennen. Ich kann ein IF z.B. so gestalten, dass es gar nicht vererbt wird, also so, dass Methoden eines IF nur dann ausgeführt werden, wenn sie vorhanden sind. Oder als Funktionsreferenz definiert sind.

Mit Letzterem setze ich das Entwurfsmuster des Decorators um: Einer Subklasse wird zur Laufzeit ein beliebiges Interface zugewiesen. Z.B. weise ich einer Seite bzw. Klasse (Bindung: URL <=> Class) das interface=comment zu und schon können Besucher Kommentare zu genau dieser Seite verfassen.

Weißt Du, das eine ist die Theorie und das andere ist die Praxis. Warum überhaupt Klassen? Die Vererbung ist doch auch nur einer von vielen Aspekten. Wirklich interessantere Aspekte sind eher wirtschaftlicher Natur, gehen z.B. in Richtung Qualitätssicherung, Teamarbeit und Kostensenkung.

So hat mein FW Subklassen hauptsächlich deswegen, weil die Klasse die Frage zur Templatebeschaffung einer Seite regelt. Die Dialektik von Eigenschaften und Methoden: Eine Eigenschaft beinhaltet den Dateinamen, eine Methode holt das Template.

Sowas wird erst richtig interessant in der Implementierung einer Volltextsuchfunktion. Zu durchsuchen seien Title, Description und Body. Während die ersten beiden Eigenschaften als Attribute in der Konfiguration zu finden sind, muss der Body erst beschafft werden. Also schnappen wir uns das class= Attribute und erstellen ganz einfach eine Instanz für die in class= festgelegte Subklasse. Und nun müssen wir nur noch eine der im FW-Interface definierten Methoden aufrufen, welche für die Beschaffung des Body zuständig ist. Fertig.

Dies und das und Weiteres ist praktisch angewandte OOP. Aber das wirst Du wahrscheinlich nie verstehen.

Schönen Tach auch.

0 78

Email mit Anhang (von User) ?

Rainer
  • php
  1. 2
    dedlfix
    1. 0
      Rainer
      1. 0
        Regina Schlauklug
        • e-mail
        1. 0
          Regina Schlauklug
          1. 1
            Der Martin
            • klugscheißerei
            • sprache
            1. 0
              Gunnar Bittersmann
              1. 0
                Der Martin
                1. 0
                  Felix Riesterer
                  1. 0
                    Der Martin
                    1. 0
                      Matthias Apsel
                      1. 0
                        Tabellenkalk
                        • humor
                        • sprache
                        1. 0
                          MudGuard
                          1. 0
                            Der Martin
                            1. 0
                              MudGuard
                              1. 0
                                Der Martin
                              2. 0
                                Gunnar Bittersmann
                  2. 0
                    Gunnar Bittersmann
                    • klugscheißerei
                    • menschelei
                    1. 0
                      Felix Riesterer
            2. 0
              Gunnar Bittersmann
              1. 0
                Der Martin
                1. 0
                  Gunnar Bittersmann
      2. 0
        dedlfix
      3. 0
        Der Martin
      4. 0
        pl
  2. 0
    MudGuard
  3. 0
    pl
    1. 0
      dedlfix
      1. 0
        pl
        1. 2
          Christian Kruse
          1. 0
            pl
            1. 0
              woodfighter
              • programmiertechnik
        2. 0
          dedlfix
          1. -2
            pl
            1. 1
              woodfighter
              • menschelei
              1. 0
                pl
                1. 0
                  woodfighter
    2. 2
      Der Martin
      1. -2
        pl
        1. 3
          Julius
          • meinung
          • menschelei
          • php
          1. 0
            pl
            1. 3

              Auf dass ich der letzte Fütterer bin

              Auge
              • meinung
              1. 0
                pl
            2. 1
              Julius
              1. -2
                pl
                1. 2
                  Matthias Apsel
                  1. 0
                    Julius
                2. 0
                  Julius
                  1. 0
                    pl
                    1. 1
                      Julius
                      1. 0
                        pl
                        1. 0
                          Julius
                    2. 0
                      woodfighter
                      1. 0
                        pl
                        1. 2
                          woodfighter
                        2. 0
                          Julius
                        3. 0
                          Matthias Apsel
                        4. 0
                          Matthias Apsel
                        5. 0
                          Matthias Apsel
                        6. 0
                          Matthias Apsel
                3. 0
                  Mitleser
                4. 2
                  Der Martin
                  • meinung
                  • menschelei
                  1. 0
                    pl
                    1. 0
                      Julius
                      1. 0
                        pl
                        1. 0
                          Julius
                          1. 0
                            pl
                            1. 4
                              woodfighter
                              1. -2
                                pl
                                1. 1
                                  woodfighter
                                  • meinung
                                  • perl
                                  1. 0

                                    Theorie und Praxis OOP

                                    pl
                                    1. 6
                                      woodfighter
                              2. 0
                                Julius
                                1. 0
                                  woodfighter
                                  1. 0
                                    Julius
                                    1. 1
                                      woodfighter
                5. 0
                  Thars
            3. 0
              Julius