 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
01.03.2005, 23:32
|
#1
|
|
TP-Veteran
Registriert seit: Sep 2004
|
[OOP] Vererbung oder nicht?
hallo...
also ich habe 2 klassen. überall möchte ich mails verschicken, daher habe ich noch eine klasse für die emails.
meine frage nun, ist es sinnvoll dies klasse für die mails durch vererbung einzubinden oder wenn nicht wie ist es sinnvoller?
class a extends mail
{
// klasse 1
}
class a extends mail
{
// klasse 2
}
|
|
|
01.03.2005, 23:51
|
#2
|
|
Guest
Registriert seit: Aug 2002
|
Das kann man so nicht sagen, was erhoffst du dir mit der Klassenstruktur? Was sollen die Klassen können?
Kurz mal der Sinn von Vererbungen:
+ Basisklasse "Mensch" mit Elementen "Alter, Größe"
- Kindklasse "Mann" mit Elementen "Bier, geile Karre"
- Kindklasse "Frau" mit Elementen "Schuhe, Telefonrechnungen"
Die Kindklassen erweitern also die Basisklasse. Eine andere Verwendung wäre hier fehl am Platz.
|
|
|
01.03.2005, 23:57
|
#3
|
|
TP-Veteran
Registriert seit: Sep 2004
|
gut ok, dann wäre das wohl fehl am platze mit der vererbung.
wie wäre es dann am sinnvollsten? in jeder methode per include die klasse einbinden bzw. im konstruktor der klasse das objekt erzeugen
$this -> mail = new mail()??
ich habe in der einen klasse 3 methoden wo ich eine mail schicken will und in der anderen klasse habe ich 2 methoden wo ich auch noch eine mail verschicken will.
Geändert von alexf812 (02.03.2005 um 00:00 Uhr).
|
|
|
02.03.2005, 00:05
|
#4
|
|
Guest
Registriert seit: Aug 2002
|
Warum denn auf 2 Klassen auslagern? Die Menge der Methoden ist keine Voraussetzung für eine Vererbung! 
Wir machen's mal so: Poste deine Klassenstruktur wie sie ist, ohne Methodeninhalt, nur mit sinnvollen Namen für Elemente und Methoden, dafür man es auch nachvollziehen kann, was du meinst. Dann gucken wir weiter.
|
|
|
02.03.2005, 00:13
|
#5
|
|
TP-Veteran
Registriert seit: Sep 2004
|
hier mal grob die 3 klassen:
Code:
class CUser
{
function forgetPassword()
{
// mail versenden
}
function addUser()
{
// nach registrierung mail versenden
}
}
class CAnzeiger
{
function delAnzeige()
{
//mail versenden wenn Anzeige abgelaufen ist
}
function addAnzeige()
{
// nach Eintrag mail versenden
}
}
class CEmail
{
var $subject;
var $to;
var $message;
var $headers;
function CEmail($subject, $to, $message)
{
$this -> subject = $subject;
$this -> to = $to;
$this -> message = $message;
}
function send()
{
$this -> headers = "MIME-VERSION: 1.0\n";
$this -> headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$this -> headers .= "Content-Transfer-Encoding: quoted-printable\n";
$this -> headers .= "From: xxx <xxx@yy.de>";
if (is_array($to))
{
foreach($this -> to as $values)
{
mail($values, $this -> subject, $this -> message, $this -> headers);
}
}
else
{
mail($this -> to, $this -> subject, $this -> message, $this -> headers);
}
}
}
Geändert von alexf812 (02.03.2005 um 00:17 Uhr).
|
|
|
02.03.2005, 00:28
|
#6
|
|
Guest
Registriert seit: Aug 2002
|
Ja, und die beiden Klassen benutzen die Klasse mail, oder? Eine Vererbung wäre in diesem Fall nicht passend. Du erstellst einfach ein mail Objekt, wo es benötigt wird. Also in jeder Methode, die eine Mail verschicken will, wird ein mail Objekt erzeugt - ist das Gleiche als ob du einen String benutzen würdest. Das ist also kein Fall für eine Vererbung.
|
|
|
02.03.2005, 00:36
|
#7
|
|
TP-Veteran
Registriert seit: Sep 2004
|
gut ok.... also du meinst es dann etwa so?:
Code:
class CUser
{
function forgetPassword()
{
$mail = new mail();
$mail -> send();
}
function addUser()
{
// nach registrierung mail versenden
$mail = new mail();
$mail -> send();
}
}
|
|
|
02.03.2005, 00:41
|
#8
|
|
Guest
Registriert seit: Aug 2002
|
Genau!  So kannst du flexibel mit den Klassen arbeiten.
|
|
|
02.03.2005, 00:42
|
#9
|
|
TP-Veteran
Registriert seit: Sep 2004
|
ok...danke dir für deine hilfe 
|
|
|
02.03.2005, 03:40
|
#10
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
wenn du es sowieso in allen methoden benutzt:
Code:
class klasse {
var $mail;
function klasse() {
$this->mail = new mail;
}
function add() {
$this->mail->send();
}
function forgot() {
$this->mail->send();
}
}
dann brauchst du es nicht jedes mal einbinden/initalisieren und die klasse steht dir immer zur verfuegung.
__________________
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
|
|
|
02.03.2005, 04:12
|
#11
|
|
Guest
Registriert seit: Aug 2002
|
Ich glaube aber nicht, dass er bei jeder Methode die gleiche eMail verschicken will, sprich der Text, Empfänger... muss man also auch wenn ohne neues Objekt zu erstellen neu initialisieren.
Wo ich es jetzt ansehe, würde ich lieber eine Funktion für das Mailen machen, weil man die Daten, die die Klasse jetzt als Elemente hat, nicht später nach dem Versenden braucht, eine Funktion wäre meiner Ansicht nach schöner.
|
|
|
02.03.2005, 13:05
|
#12
|
|
TP-Veteran
Registriert seit: Sep 2004
|
also du meinst in jede klasse ein funktion zum versenden der mails?
ich könnte es ja so machen wie HoRnominatoR es gesagt hat, dann übergeb ich einfach der methode send die erforderlichen parameter und nicht im konstruktor, aber ich brauche die mailfunktion nicht in jeder methode, das war nur ein ausschnitt.
|
|
|
02.03.2005, 14:46
|
#13
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
also ich sehe da kein problem, auch nicht in der vererbung. wenn etwas haeufiger vorkommt, denke ich, kann man davon ausgehen, dass eine klasse fester bestandteil einer anderen ist. so auch mail in user. bsplsweise waere forum->user->mail->send fuer mich eine natuerliche vererbung. und eine eigene klasse ist ja kein problem und deutlich erweiterbar - wie du, alex, ja auch schon selbst sagst.
http://www.traum-projekt.com/forum/s...06&postcount=8
__________________
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:12 Uhr.
|
 |