Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 01.03.2005, 23:32   #1
TP-Veteran
 
Benutzerbild von alexf812
 
Registriert seit: Sep 2004
alexf812 macht alles soweit korrekt

[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
}
alexf812 ist offline   Mit Zitat antworten


Alt 01.03.2005, 23:51   #2
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
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.
Strogij ist offline   Mit Zitat antworten
Alt 01.03.2005, 23:57   #3
TP-Veteran
 
Benutzerbild von alexf812
 
Registriert seit: Sep 2004
alexf812 macht alles soweit korrekt
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).
alexf812 ist offline   Mit Zitat antworten
Alt 02.03.2005, 00:05   #4
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
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.
Strogij ist offline   Mit Zitat antworten
Alt 02.03.2005, 00:13   #5
TP-Veteran
 
Benutzerbild von alexf812
 
Registriert seit: Sep 2004
alexf812 macht alles soweit korrekt
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).
alexf812 ist offline   Mit Zitat antworten
Alt 02.03.2005, 00:28   #6
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
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.
Strogij ist offline   Mit Zitat antworten
Alt 02.03.2005, 00:36   #7
TP-Veteran
 
Benutzerbild von alexf812
 
Registriert seit: Sep 2004
alexf812 macht alles soweit korrekt
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();
	}
	
	 
}
alexf812 ist offline   Mit Zitat antworten
Alt 02.03.2005, 00:41   #8
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Genau! So kannst du flexibel mit den Klassen arbeiten.
Strogij ist offline   Mit Zitat antworten
Alt 02.03.2005, 00:42   #9
TP-Veteran
 
Benutzerbild von alexf812
 
Registriert seit: Sep 2004
alexf812 macht alles soweit korrekt
ok...danke dir für deine hilfe
alexf812 ist offline   Mit Zitat antworten
Alt 02.03.2005, 03:40   #10
TP-Insider
 
Benutzerbild von HoRnominatoR
 
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
HoRnominatoR ist auf einem guten Weg
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
HoRnominatoR ist offline   Mit Zitat antworten
Alt 02.03.2005, 04:12   #11
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
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.
Strogij ist offline   Mit Zitat antworten
Alt 02.03.2005, 13:05   #12
TP-Veteran
 
Benutzerbild von alexf812
 
Registriert seit: Sep 2004
alexf812 macht alles soweit korrekt
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.
alexf812 ist offline   Mit Zitat antworten
Alt 02.03.2005, 14:46   #13
TP-Insider
 
Benutzerbild von HoRnominatoR
 
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
HoRnominatoR ist auf einem guten Weg
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
HoRnominatoR ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
[OOP] Vererbung oder nicht? [OOP] Vererbung oder nicht?
« mail(): erzeugtes mail als txt-datei an datenbank anhaengen | zeitbegrenzung php skript? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Was ich denn so den ganzen Tag lang mache LauneDerNatur Einfach so ... 4 03.02.2005 10:45
Frames oder Nicht Frames? Das ist meine Frage leisseralex Webdesign & Co. 11 23.01.2005 15:53
zur nächsten Seite verschieben (oder auch nicht) jonny_Bayern Dreamweaver 8 05.11.2003 20:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:12 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67