Ankündigung

Einklappen
Keine Ankündigung bisher.

Einstieg in die OOP + Frage ob mein Gedankengang richtig ist

Einklappen

Neue Werbung 2019

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

  • Einstieg in die OOP + Frage ob mein Gedankengang richtig ist

    Hallo,

    Ich bin neu hier in diesem Forum und auch was die OOP angeht.
    Ich habe zum Üben mehrere Quellen aus dem Internet benutzt und dann in einem kleinen Beispiel, welches ich mir selber überlegt habe, eine Ansatz geschrieben. Meine Frage dazu ist nun:

    Ist das der Weg, wie man OOP einsetzt, oder habe ich die Basics immer noch nicht richtig verstanden ?

    PHP-Code:
    <?php
        
    Class Kunde extends Warenwirtschaft {
            private 
    $kdNr;
            private 
    $kdName;
            private 
    $kdVorname;
            private 
    $kdAddresse;
            private 
    $kdTelefon;
            
            function 
    setzeKdNr() {
            }
            
            function 
    holeKdNr() {
            }
            
        }
        
        Class 
    Warenwirtschaft extends CSV {
            function 
    zeigeAlleKundenAn() {
            }
            
            function 
    zeigeBestimmtenKundenAn($kdNr) {
            }
            
            function 
    zeigeBestellungen($kdNr) {
            }
            
            function 
    storniereBestellungen($auftragsnummer) {
            }
        }
        
        Class 
    CSV {
            function 
    leseCSVaus($pfad) {
            }
        }
    ?>
    PHP-Code:
    <?php
        $horst 
    = new Kunde;
        
    $horst->setzeKdNr('123456'); // Horst ist eine neuer Kunde in unserem Webshop
        
        
    $melanie = new Kunde;
        
    $melanie->holeKdNr($_SESSION['sid']); // Melanie hat schon ein Konto in unserem Webshop
        
    $melanie->storniereBestellung('785282-48526'); // Melanie storniert eine Bestellung
        
        
    $administrator = new Warenwirtschaft;
        
    $administrator->zeigeAlleKundenAn(); // Administrator will alle Kunden aufgelistet bekommen
    ?>

  • #2
    oder habe ich die Basics immer noch nicht richtig verstanden ?
    Noch nicht wirklich. Ein Administrator ist wohl kaum eine "Warenwirtschaft", genauso wie die ABleitung von CSV vielleicht praktisch, aber nicht logisch ist.

    storniereBestellung() könnte bspw. ein Bestellung-Objekt als Parameter benutzen. Die Bestellung selbst würde vielleicht über einen Bestellungenmanager aus der Datenbank geladen.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Okay, wenn ich das nun richtig verstanden habe, empfiehlst du mir, das ich im Prinzip eine Klasse 'Bestellungen' schreiben soll und diese Klasse 'Bestellungen' vererbt ihr Methoden und Eigenschaften an den Kunden ? Somit wäre Melanie immer noch in der Lage ihre Bestellung zu stornieren, aber die Programmlogik im Hintergrund wäre verbessert ?

      Nächste Frage:

      Soll ich dann den Administrator Objekt einer 'Administratorklasse' werden lassen, oder wie war das von dir gemeint ?

      Vielen Dank für deine Hilfe =)

      Rikaan

      Kommentar


      • #4
        Nein, das empfehle ich nicht. Bitte genau lesen!

        Zu 2)
        Ein Administrator ist eine Person, ein User ist eine Person. Inwiefern ein Admin ein User ist, hängt von der Applikation ab.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Nächster Versuch, vielleicht nähere ich mich ja langsam der Lösung der Verständnisblockade.

          PHP-Code:
              Class Benutzer extends Warenwirtschaft {
                  private 
          $Berechtigung;
                  private 
          $Name;
                  private 
          $Adresse;
                  
                  function 
          setzeBerechtigungen($Berechtigung) {
                      
          $this->Berechtigung $Berechtigung;
                  }
                  
                  function 
          setzeName($Name) {
                      
          $this->Name $Name;
                  }
                  
                  function 
          setzeAdresse($Adresse) {
                      
          $this->Adresse $Adresse;
                  }
              }
              
              Class 
          Kunde extends Benutzer {
                  private 
          $KdNr;
                  
                  function 
          setzeKdNr($KdNr) {
                      
          $this->KdNr $KdNr;
                  }
                  
                  function 
          holeKdNr($sid) {
                      
          // Hier wieder eine Klasse, welche die Verbindungen zur Datenbank ueberwacht ?
                  
          }
              }
              
              Class 
          Verwaltungspersonal extends Benutzer {
                  function 
          zeigeAlleKundenAn() {
                  }
              }
              
              Class 
          Warenwirtschaft {
                  function 
          storniereBestellung($Auftragsnummer) {
                      
          // Hier wieder eine Klasse, welche die Verbindungen zur Datenbank ueberwacht ?
                  
          }
              } 
          PHP-Code:
              $horst = new Kunde;
              
          $horst->setzeBerechtigungen('Kunde');
              
          $horst->setzeKdNr('123456'); // Horst meldet sich neu im Webshop an !
              
              
          $melanie = new Kunde;
              
          $melanie->setzeBerechtigung('Kunde');
              
          $melanie->holeKdNr($_SESSION['sid']);
              
          $melanie->storniereBestellung('784284-52235');
              
              
          $besitzer = new Verwaltungspersonal;
              
          $besitzer->setzeBerechtigung('Administrator');
              
          $besitzer->zeigeAlleKundenAn(); 

          Kommentar


          • #6
            Mir erschließt sich nicht, warum Du alles von Warenwirtschaft ableitest. Eine Person ist keine Warenwirtschaft!

            PHP-Code:
            $Database = new Database ();
            $Wawi     = new Warenwirtschaft ($Database);

            $horst $Wawi->holeKunde ('Horst');

            if (
            false === $horst) {
              
            $horst = new Kunde ('Horst');
              
            $Wawi->neuerKunde ($horst);
            }

            $horst->setzeKdNr('123456'); // Horst meldet sich neu im Webshop an !


            $melanie $Wawi->holeKunde ('Melanie');

            if (
            false === $melanie) {
              
            $melanie = new Kunde ('Melanie');
              
            $Wawi->neuerKunde ($melanie);
            }

            $melanie->setzeKdNr($_SESSION['kundennummer']);


            $Bestellung $Wawi->holeBestellung ('784284-52235');
            $Wawi->storniereBestellung ($Bestellung);
            // evtl. sehe da aber gerade keinen Sinn drin
            // $Wawi->storniereBestellung ($Bestellung , $melanie);


            $admin $Wawi->holeAdmin ('Administrator' 'Passwort');
            $admin->zeigeAlleKundenAn(); 
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar

            Lädt...
            X