Zum Inhalt springen

programmierfrage


bigair
 Teilen

Empfohlene Beiträge

servus, ich steh von einer krise, is zwar eigentlich im prinzip egal, aba mich plagts schon seit drei stunden:

 

USERINTERACTION -> FUNKTIONSAUFRUF -> FKT BASTELT EIN OBJ -> OBJ Speichern

 

schön und gut...sprache = scriptsprache (php)

 

möglichkeit 1:

class Rrad{
  .
  .
  __construct($typ, $marke){
      $this->$typ=$typ;
      $this->$marke=$marke;
 }
}

 

aufruf über:

den Konstruktor...mit parametern in klammer....Rad('mtb', 'simplon')...

 

 

oder (meine version):

möglichkeit zwei:

 

class rad{
  __construct($sqlobj)....

  function setTyp($typ){
     $this->$typ=$typ; 
  }
usw

}

 

nachteil davon: objekt erzeugen wird schwerer...(mehrere zeilen)

 

lösung:

function machEinRad($obj, $typ, $marke){
   $obj->setTyp($typ);
   $obj->setMarke($marke);
}

 

das wär so ein art psydokonstruktor der ausgelagert ist, eigentlich rentiert sich der mehraufwand beim programmieren in der flexiblität des codes (eigentlich des objectes), zb wenn ein obj über mehrere seiten erstellt wird (formular) kann so zuerst das obj mit den daten der ersten seite über den psydokonstr erzeugt werden und dann mit den eigenen methoden erweitert werden.

 

nur es kommt mir sehr an der objektorientiertheit vorbeigearbeitet vor, weil ich ja eigentlich die hauptaufgabe (interner konstruktur) übergehe...

 

...was meint ihr dazu``

 

lg

dominik

Link zu diesem Kommentar
Auf anderen Seiten teilen

scheiss auf web anwendungen ... is ja was grausliches ....

 

back to the roots ... i bin fuer text-only web ....

 

ja da kann ich dir nur recht geben, allerdings wirst du auch bei text only web eine programmiersprache im background brauchen, weil nur statisches web währ irgentwann doch etwas zach....oder nicht?

 

und es geht nedamal um eine webanwendung :zwinker:

Link zu diesem Kommentar
Auf anderen Seiten teilen

so nebenbei, java ist scheiße!

 

@big

 

ganz versteh ich denn sinn deiner programmiertätigkeit da nicht!!

du erzeugst erst ein objekt und rufst anschließend eine weitere funktion auf um die parameter (eigentschaften) zu setzen?? warum nict gleich in einem!!

 

 

create obj (wert, wert)

obj = new obj

obj.irgendwas = wert

obj.nochwas = wert

 

 

ist jetzt nicht php, aber vom sinn her mal! (php ist auch scheiße :D )

 

sollte ein wert nicht gesetzt sein, dann sit die eigenschaft leer, fertig!

Link zu diesem Kommentar
Auf anderen Seiten teilen

jo egal...machmas is psydocode... :D

 

var1:

ich erzeuge ein objekt mittels eines konstruktors,

das würde heißen, ich muss alle eigenschaften angeben...wenn auch mit ' ' oder sonnstigem...

 

var2:

ich erzeugen mit einem psydokonstruktor (der eigentliche konstruktor der klasse) ein leeres objekt, und dannach kann ich dann mit obj->setAttribute(wert) sachen zuweißen, was aus meiner sicht den vorteil hab ich das ich bei verteilten inputs (mehrere php seiten) imma die neue eigenschaft hinzufügen kann, ohne das objekt neu zu erstellen...

und um dann auch ein obj wie in var1 zu erzeugen würd ich die externe fkt machen, die mir alles zusammenfasst

 

function psydokons($bla, $blub){
$obj->setBla($bla);
$obj->setBlub($blub);
}

 

wobei obj das vom psydokonstruktor erzeugete leere objekt wäre...

 

weißt du was ich mein?

Link zu diesem Kommentar
Auf anderen Seiten teilen

das nennt sich eine klasse ;)

 

:D

 

na no na...es geht ja um klassen...

 

 

es geht mir darum wie ich diese objekte erzeuge (mit klassen)

 

entweder per 1 konstruktor der gleich alle werte initialisiert

oder

mit einem psydokonstruktor und dann mit funktionen die die werte des objektes verändern...

 

ein bsp:

für var2:

 

class Messages{
	var $sqlObj;
	var $mysql_tableName;
	var $text;


	function PM($sqlObj, $mysql_tableName){
		$this->sqlObj=$sqlObj;
		$this->mysql_tableName=$mysql_tableName;
		$this->tableCheck(); 
	}

	function setMessage($text){
		$this->text=$text;
		return true;
	}

}
?>

 

das währe die version mit dem psydokonstruktur

 

class Messages{
	var $sqlObj;
	var $mysql_tableName;
	var $text;


	function PM($sqlObj, $mysql_tableName, $text){
		$this->sqlObj=$sqlObj;
		$this->mysql_tableName=$mysql_tableName;
		$this->tableCheck(); 
                       $this->text=$text;
	}



}
?>

 

der große unterschied ist jetzt, das wenn ich was ändern möchte nachher...ich bei var1 einfach nur die fkt aufrufen muss, bei var 2...nicht ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

 Teilen

×
×
  • Neu erstellen...