Antworten auf deine Fragen:
Neues Thema erstellen

Soll ich eine Klasse je Nachrichtenmodul, Benutzermodul, etc.. schreiben?

ap1

Grafik/Web

Hi Leute

wie ich das meine muss ich kurz erklären:

Ich habe es mir gedacht dass ich eine Oberklasse hab und für jedes Modul eine Unterklasse!

  • SOFTWARE
    • Benutzer
      • ladeDaten();
      • ...
    • Nachrichten
      • ladeNachrichten();
      • ...
    • Freunde
      • ladeFreunde();
      • ...
Macht das sinn? Wenn ja: ist das okay wenn ich benutzer extends software oder nachrichten extends bzw. freunde mache? Oder soll ich nach möglichkeit 2 Programmieren:
(Nach dieser Möglichkeit muss ich dann allerdings für jede Klasse eine Referenz ablegen, ist das schlimm - etwa:
PHP:
<?php
//...
$software = new software();
$benutzer = new benutzer();
$nachrichten = new nachrichten($benutzer->ladeId());
$freunde = new freunde($benutzer->ladeId());
?>
)

  • SOFTWARE
  • BENUTZER
    • ladeDaten();
  • NACHRICHTEN
    • ladeNachrichten();
  • FREUNDE
    • ladeFreunde();
Oder soll ich alle Funktionen von Benutzer, Nachrichten und Freunde in SOFTWARE packen: (Möglichkeit 3)

  • SOFTWARE
    • ladeDaten();
    • ladeNachrichten(); etc...

Hoffe ihr versteht wie ich das meine ;)
Welche möglichkeit soll ich Programmieren? Ich würde zur 2. tendieren sollte es nicht schlimm sein für jedes einzelne Modul eine neue Referenz ab zu legen...? Was hält ihr für sinnvoll?

vielen Dank im Vorraus
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: Soll ich eine Klasse je Nachrichtenmodul, Benutzermodul, etc.. schreiben?

Hi,

die Aufteilung bzgl. deiner extends macht nicht wirklich Sinn.

Du hast sicherlich eine Klasse für die Datebank (z.B.: class db).
Angenommen du erstellst eine Klasse für "users". Dann wäre das im Grunde
PHP:
<?php
class users extends db {
/* methoden */
}
?>

In der Klasse users wickelst du alles ab was den User betrifft. Egal wo egal wie.

Das gleiche betrifft nun die Klasse Nachrichten. Das wäre wiederum
PHP:
<?php
class messages extends db {
 /* methode */
]
?>
In der Klasse messages kannst du unteranderem auch Nachrichten innerhalb als auch auserhalb verarbeiten. Bedeutet, du kannst Nachrichten in eine DB-Tabelle setzen als auch per smtp oder mai() Daten abwickeln.

Was du mit Software meinst ist mir noch unklar, weil der Begriff sehr weitreichend und nicht eindeutig ist.

Warum nun immer extends db - weil du letztlich dadurch die Methoden aus der Klasse db immer nutzen kannst - insbesondere durch protected!

Und falls du irgendwas andres mit einer Klasse (ausser db) noch vor hast, kansst du die Klasse ja *****n.
 

ap1

Grafik/Web

AW: Soll ich eine Klasse je Nachrichtenmodul, Benutzermodul, etc.. schreiben?

Hi,

die Aufteilung bzgl. deiner extends macht nicht wirklich Sinn.

Du hast sicherlich eine Klasse für die Datebank (z.B.: class db).
Angenommen du erstellst eine Klasse für "users". Dann wäre das im Grunde
PHP:
<?php
class users extends db {
/* methoden */
}
?>
In der Klasse users wickelst du alles ab was den User betrifft. Egal wo egal wie.

Das gleiche betrifft nun die Klasse Nachrichten. Das wäre wiederum
PHP:
<?php
class messages extends db {
 /* methode */
]
?>
In der Klasse messages kannst du unteranderem auch Nachrichten innerhalb als auch auserhalb verarbeiten. Bedeutet, du kannst Nachrichten in eine DB-Tabelle setzen als auch per smtp oder mai() Daten abwickeln.

Was du mit Software meinst ist mir noch unklar, weil der Begriff sehr weitreichend und nicht eindeutig ist.

Warum nun immer extends db - weil du letztlich dadurch die Methoden aus der Klasse db immer nutzen kannst - insbesondere durch protected!

Und falls du irgendwas andres mit einer Klasse (ausser db) noch vor hast, kansst du die Klasse ja *****n.

Ich dachte mir dass Software so eine Art Dach für alle anderen Funktionen bilden soll?
Oder macht das kein sinn?
 

saila

Moderatorle

AW: Soll ich eine Klasse je Nachrichtenmodul, Benutzermodul, etc.. schreiben?

Dann sag mal, was in der Klasse software so für methoden sein sollten?
Vor allem - was verstehst du unter software?
 

ap1

Grafik/Web

AW: Soll ich eine Klasse je Nachrichtenmodul, Benutzermodul, etc.. schreiben?

Dann sag mal, was in der Klasse software so für methoden sein sollten?
Vor allem - was verstehst du unter software?

Du hast recht - es macht keinen Sinn "Software" als Oberklasse zu nehmen.. Ich habs gelassen ;)

Jetzt erzeuge ich jeweils eine Referenz auf eine Klasse ($user = new user und so weiter)

Trotzdem vielen vielen Dank für die Hilfe oben!

lg andi ;)
 

Chickenshooter

Alter Mann

AW: Soll ich eine Klasse je Nachrichtenmodul, Benutzermodul, etc.. schreiben?

Abstraktion ist das Zauberwort.

Du kannst die Frgaen stellen wie zum Bsp.
hat jedes "Ding" in meiner Anwendung eine ID.

Wenn ja nenne Dein "root-object" doch einfach

Object

dann leitest Du alle Klassen von Object ab.

weiter gedacht ein Benutzer ist eine Person, ein Freund ist eine Person!!!

ergo

PHP:
class Object
{
    private $_id;
    public function getID(){}
     public function setID($id){}
 }

class Person extends Object
{
   private $_vorname;
   private $_nachname;

   public funtion getVorname(){}
   public funtion setVorname($vorname){}

   public funtion getNachname(){}
    public funtion setNachname($nachname){}
 }

class Benutzer extends Person
{
   private $_email;
   public funtion getEmail(){}
    public funtion setEmail($email){}
 }

somit hat ein Benutzer
1. eine ID
2. einen Vor- und Nachnamen
3. eine Email Adresse

wohingegen eine Person, nicht zwingen eine Email Adresse hat.

Vererbung.... tolle Sache das.

Noch "lustiger" ;-)

Interfaces (Schnittstekllen)

zB

PHP:
public interface Printable()
{
   puplic function ausgabe();
}

so kannst Du denn das tun:

PHP:
class Object implements Printable
 {
    private $_id;
    public function getID(){}
      public function setID($id){}

    /* Implementation des interfaces */
       public function ausgabe()
    {
        $ausgabe = "<p>Das Object hat die ID:" . $this->getID() . "</p>";
        return $ausgabe;
    }
   }
 
class Person extends Object
{
   private $_vorname;
   private $_nachname;

   public funtion getVorname(){}
    public funtion setVorname($vorname){}
 
   public funtion getNachname(){}
     public funtion setNachname($nachname){}
  
    /* Implementation des interfaces für die Person */
    /* wenn du es hier noch mal implementierst ist die */
         /* Methode von der Klasse Object überschrieben */
    public function ausgabe()
    {
        /* mit parent kannst Du auf Methoden der beerbten Klasse in*/
         /* diesem Fall Object zugreifen */
         $ausgabe = parent::ausgabe();
        $ausgabe.="<p>" . $this->getVorname() . ", " .$this->getNachname(). "</p>";
        return $ausgabe;
      }
    }

class Benutzer extends Person
{
   private $_email;
   public funtion getEmail(){}
     public funtion setEmail($email){}
  
    /* Implementation des interfaces für die Benutzer */
    public function ausgabe()
     {
        $ausgabe = parent::ausgabe();
        $ausgabe.="<p>" . $this->getEmail() . "</p>";
        return $ausgabe;
     }
     }

MfG
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben