[OOP] In einer Klasse eine andere Klasse verwenden?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    Mal ein wenig Code dazu:
    PHP-Code:
    class elektroofen()
    {
    function 
    mache_an($temp$dauer)
    { ... }
    function 
    mache_aus()
    { ... }
    }

    class 
    steinofen()
    {
    function 
    heize_vor($temp$dauer)
    { ... }

    function 
    mache_an($temp$dauer)
    { ... }
    function 
    mache_aus()
    { ... }
    }


    class 
    baecker_grundform()
    // kan mit keinem ofen umgehen
    // kann nur den teig machen
    {
    function 
    machte_brot_teig()
    { ... }
    }

    Neue Datei:

    require(
    'steinofen.inc.php');
    require(
    'baecker_grundform.inc.php');


    class 
    steinofen_baecker extends baecker_grundform {
    function 
    backe()
    {
    $this->mache_brot_teig();
    $mysteinofen->heize_vor($temp$dauer)

    $mysteinofen->mache_an($temp$dauer);
    $mysteinofen->mache_aus();
    }
    }


    $mysteinofen = new steinofen();
    $mybaecker = new steinofenbaecker
    Der Baecker_grundform kann nur den Teig machen, der steinofen_baecker kann den Teig machen und ihn im Steinofen backen.
    Zuletzt geändert von MaxP0W3R; 26.08.2004, 14:32.


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

    Kommentar


    • #32
      class steinofen_baecker extends baecker_grundform {
      function backe()
      {
      $this->mache_brot_teig();
      heize_vor($temp, $dauer)

      mache_an($temp, $dauer);
      mache_aus();
      }
      }

      [/PHP]
      Erst mal Danke für das Beipiel.
      Das muss aber $this->mache_an($temp, $dauer) etc heißen.
      Vererbung kenne ich gut. Das ist ja nicht das Problem.
      Wo wird das Objekt Brot erzeugt. Im Hauptskript oder im Konstruktor der Klasse Baecker_grundform oder Steinofen_baeker oder wo? Und warum ?
      Pickel ? Übergewicht ? Depressionen ?
      Brot, Kartoffeln und Milch sind Gift!
      http://www.paleofood.de

      Kommentar


      • #33
        Sorry, mein fehler.

        Habe vergessen, die Methoden dem Objekt zuzuordnen...


        Also du erstellst in der datei steinofen.inc.php die Klasse steinofen und in der datei baecker_grundform.inc.php die Klasse baeckergrundform.

        So, jetzt musst du nen Baecker haben, der mit steinofen umgehen muss.

        Also die Klasse steinofen und die Klasse baecker_grundform holen, den baecker so erweitern, dass er den Steinofen bedienen kann, und fertig

        Das selbe für z.B. einen elektrofen Bäcker.

        Somit hast du die verbindung zwischen den Klassen bzw. Objekten immer nur genau dann, wenn du sie wirklich benötigts.
        In der grundform sind alle Objekte voneinander unabhängig.


        P.S. : ich glaube wenn das ein Bäcker lesen würde, würde er sich stark wundern

        cya max


        An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

        Kommentar


        • #34
          Und nochetwas:

          Es ist absolut klar, dass es passieren kann, dass du plötzlich 2 Objekte Steinofen hast, einmal der Steinofen, der vom Bäcker bedint wird und noch einen, sagen wir einen für den lehrling.

          Aber es ist auch klar, dass OOP zu lasten der Performance geht, das war schon klar, als man die OOP konzipiert hat.

          Man nimmt dies aber im Kauf, um mehr übersicht zu haben.

          Optimalerweise sollte man es lienar und in Funktionen coden, aber da leidet die wiederverwendbarkeit und die flexibilität bzw. der Schutz und die Integrität der Variablen.


          Wenn man doppelte Objekte vermeiden will, kann man im Skript von sagen wir "Brot backen im Steinofen" alles vom Baecker ausgehend machen, und sich alle Objekte vom Baecker liefern lassen, so lassen wir den Lehrling den Steinofen nicht direkt bedienen, sondern er muss den Bäcker um Erlaubnis fragen, dieser stimmt zu und liefert eine referenz auf den bestehenden Steinofen, damit sich der lehrling keinen eigenen "baut" (instanziert)


          P.S: spätestens ab jetzt sollten alle Bäcker nicht mehr weiterlesen lol ^^

          cya max


          An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

          Kommentar


          • #35
            LOL.

            OK, danke.

            Gruß Antman
            Pickel ? Übergewicht ? Depressionen ?
            Brot, Kartoffeln und Milch sind Gift!
            http://www.paleofood.de

            Kommentar

            Lädt...
            X