<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Hilfe bei Problemlösung beim OOP</title>
    <link>http://forum.geizhals.at/feed.jsp?id=521323</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(2): Hilfe bei Problemlösung beim OOP</title>
      <link>http://forum.geizhals.at/t521323,4342272.html#4342272</link>
      <description>ja, an beide Möglichkeiten habe ich schon gedacht, aber beides hat mir nicht so wirklich gefallen&lt;br/&gt;</description>
      <pubDate>Sat, 15 Sep 2007 08:10:15 GMT</pubDate>
      <guid>http://forum.geizhals.at/t521323,4342272.html#4342272</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2007-09-15T08:10:15Z</dc:date>
    </item>
    <item>
      <title>Re(2): Hilfe bei Problemlösung beim OOP</title>
      <link>http://forum.geizhals.at/t521323,4342271.html#4342271</link>
      <description>vielen Dank für den tollen Beitrag, sehr schöne Lösung &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 15 Sep 2007 08:09:49 GMT</pubDate>
      <guid>http://forum.geizhals.at/t521323,4342271.html#4342271</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2007-09-15T08:09:49Z</dc:date>
    </item>
    <item>
      <title>Re: Hilfe bei Problemlösung beim OOP</title>
      <link>http://forum.geizhals.at/t521323,4342170.html#4342170</link>
      <description>eine möglichkeit wäre, das objekt zu klonen, anstatt neu zu instanzieren. in php 5 kannst du die klon-methode overriden, damit du dort eine frische klasse herausbekommen würdest, die nur die datenbank-daten von der ursprungsklasse übernimmt.&lt;br&gt;&lt;br&gt;eine andere möglichkeit - und das ist die, die ich empfehlen würde - wär durch ein singleton pattern. &lt;br&gt;&lt;br&gt;ein singleton pattern ist im grunde nix anderes als eine globale variable, nur viel viel aufwändiger und eleganter &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;ich benutze ein singleton pattern z.b. für meine datenbankabstraktionsklasse, du könntest eines für die dateninstanz selber machen.&lt;br&gt;&lt;br&gt;funktionieren tut das lt. wikipedia so:&lt;br&gt;&lt;blockquote&gt;The singleton pattern is implemented by creating a class with a method that creates a new instance of the class if one does not exist. If an instance already exists, it simply returns a reference to that object.&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;von einem singleton pattern hast du also immer nur 1 objekt, kannst das aber jederzeit holen. in deinem fall würde das so ausschauen&lt;br&gt;&lt;br&gt;von klasse A stammen deine objekte, die mit den daten der klasse B herumfuhrwerken.&lt;br&gt;klasse B ist die singleton, welche die daten beinhaltet, und nur einmal existiert.&lt;br&gt;&lt;br&gt;eine getData-methode der klasse B tut jetzt nichts anderes als nachzuschauen, ob die daten schon vorhanden sind. wenn nein, dann hol sie aus der datenbank. wenn ja, dann liefer sie zurück.&lt;br&gt;&lt;br&gt;eine singleton pattern in php5 würde lt. wikipedia z.b. so aussehen:&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
&amp;lt;?php&#xD;
class Singleton {&#xD;
  // object instance&#xD;
  private static $instance;&#xD;
 &#xD;
  private function __construct() {}&#xD;
 &#xD;
  private function __clone() {}&#xD;
 &#xD;
  public static function getInstance() {&#xD;
    if (self::$instance === null) {&#xD;
      self::$instance = new Singleton();&#xD;
    }&#xD;
    return self::$instance;&#xD;
  }&#xD;
 &#xD;
  public function doAction() {&#xD;
    ...&#xD;
  }&#xD;
}&#xD;
 &#xD;
//usage&#xD;
Singleton::getInstance()-&amp;gt;doAction();&#xD;
 &#xD;
?&amp;gt;&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 15 Sep 2007 01:04:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t521323,4342170.html#4342170</guid>
      <dc:creator>stefs</dc:creator>
      <dc:date>2007-09-15T01:04:34Z</dc:date>
    </item>
    <item>
      <title>Re: Hilfe bei Problemlösung beim OOP</title>
      <link>http://forum.geizhals.at/t521323,4342169.html#4342169</link>
      <description>eine möglichkeit wäre, das objekt zu klonen, anstatt neu zu instanzieren. in php 5 kannst du die klon-methode overriden, damit du dort eine frische klasse herausbekommen würdest, die nur die datenbank-daten von der ursprungsklasse übernimmt.&lt;br&gt;&lt;br&gt;eine andere möglichkeit - und das ist die, die ich empfehlen würde - wär durch ein singleton pattern. &lt;br&gt;&lt;br&gt;ein singleton pattern ist im grunde nix anderes als eine globale variable, nur viel viel aufwändiger und eleganter &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;ich benutze ein singleton pattern z.b. für meine datenbankabstraktionsklasse, du könntest eines für die dateninstanz selber machen.&lt;br&gt;&lt;br&gt;funktionieren tut das lt. wikipedia so:&lt;br&gt;&lt;blockquote&gt;The singleton pattern is implemented by creating a class with a method that creates a new instance of the class if one does not exist. If an instance already exists, it simply returns a reference to that object.&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;von einem singleton pattern hast du also immer nur 1 objekt, kannst das aber jederzeit holen. in deinem fall würde das so ausschauen&lt;br&gt;&lt;br&gt;klasse A sind deine objekte, die mit den daten herumfuhrwerken.&lt;br&gt;klasse B ist die singleton, welche nur einmal existiert.&lt;br&gt;&lt;br&gt;eine getData-methode der klasse B tut jetzt nichts anderes als nachzuschauen, ob die daten schon vorhanden sind. wenn nein, dann hol sie aus der datenbank. wenn ja, dann liefer sie zurück.&lt;br&gt;&lt;br&gt;eine singleton pattern in php5 würde lt. wikipedia z.b. so aussehen:&lt;br&gt;&lt;br&gt;&amp;lt;?php&lt;br&gt;class Singleton {&lt;br&gt;&amp;nbsp;&amp;nbsp;// object instance&lt;br&gt;&amp;nbsp;&amp;nbsp;private static $instance;&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;private function __construct() {}&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;private function __clone() {}&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;public static function getInstance() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (self::$instance === null) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self::$instance = new Singleton();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return self::$instance;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;public function doAction() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;}&lt;br&gt; &lt;br&gt;//usage&lt;br&gt;Singleton::getInstance()-&amp;gt;doAction();&lt;br&gt; &lt;br&gt;?&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 15 Sep 2007 01:04:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t521323,4342169.html#4342169</guid>
      <dc:creator>stefs</dc:creator>
      <dc:date>2007-09-15T01:04:34Z</dc:date>
    </item>
    <item>
      <title>Re: Hilfe bei Problemlösung beim OOP</title>
      <link>http://forum.geizhals.at/t521323,4342059.html#4342059</link>
      <description>Entweder: Mach ein Datenbankobjekt, das Du dem Konstruktor jeder Klasse als Parameter mitgibst.&lt;br&gt;Oder: Mach ein globales Datenbankobjekt, das Du im Konstruktor zuweist.&lt;br/&gt;</description>
      <pubDate>Fri, 14 Sep 2007 21:13:44 GMT</pubDate>
      <guid>http://forum.geizhals.at/t521323,4342059.html#4342059</guid>
      <dc:creator>ecgnwotan</dc:creator>
      <dc:date>2007-09-14T21:13:44Z</dc:date>
    </item>
    <item>
      <title>Re: Hilfe bei Problemlösung beim OOP</title>
      <link>http://forum.geizhals.at/t521323,4341794.html#4341794</link>
      <description>wie wärs mit dem singleton pattern?&lt;br/&gt;</description>
      <pubDate>Fri, 14 Sep 2007 17:18:57 GMT</pubDate>
      <guid>http://forum.geizhals.at/t521323,4341794.html#4341794</guid>
      <dc:creator>bneu</dc:creator>
      <dc:date>2007-09-14T17:18:57Z</dc:date>
    </item>
    <item>
      <title>Hilfe bei Problemlösung beim OOP</title>
      <link>http://forum.geizhals.at/t521323,4341730.html#4341730</link>
      <description>Hi!&lt;br&gt;&lt;br&gt;Ich möchte folgendes erreichen: eine Reihe von Klassen-Methoden sollen auf einen Pool von Daten zugreifen können. Diese Daten kommen aus der Datenbank und ich möchte nicht, dass jedes Mal, wenn ich ein Objekt einer Klasse erstelle, diese Daten neu aus der Datenbank geholt werden müssen.&lt;br&gt;&lt;br&gt;Ich will in jeder Methode in jeder Klasse über $this-&gt;vars["VAR_NAME"] (oder dergleichen) auf diesen Datenpool zugreifen können.&lt;br&gt;&lt;br&gt;Wenn ich im Konstruktor jeder Klasse ein vars-Objekt erzeuge, wird ja jedes Mal über den Konstruktor der var-Klasse alles neu aus der Datenbank eingelesen und das ist natürlich schlecht.&lt;br&gt;&lt;br&gt;Wie mache ich das am besten?&lt;br/&gt;</description>
      <pubDate>Fri, 14 Sep 2007 16:30:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t521323,4341730.html#4341730</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2007-09-14T16:30:34Z</dc:date>
    </item>
    <item>
      <title>Hilfe bei Problemlösung beim OOP</title>
      <link>http://forum.geizhals.at/t521323,4341733.html#4341733</link>
      <description>Hi!&lt;br&gt;&lt;br&gt;Ich möchte folgendes erreichen: eine Reihe von Klassen-Methoden sollen auf einen Pool von Daten zugreifen können. Diese Daten kommen aus der Datenbank und ich möchte nicht, dass jedes Mal, wenn ich ein Objekt einer Klasse erstelle, diese Daten neu aus der Datenbank geholt werden müssen.&lt;br&gt;&lt;br&gt;Ich will in jeder Methode in jeder Klasse über $this-&gt;vars["VAR_NAME"] (oder dergleichen) auf diesen Datenpool zugreifen können.&lt;br&gt;&lt;br&gt;Wenn ich im Konstruktor jeder Klasse ein vars-Objekt erzeuge, wird ja jedes Mal über den Konstruktor der var-Klasse alles neu aus der Datenbank eingelesen und das ist natürlich schlecht.&lt;br&gt;&lt;br&gt;Wie mache ich das am besten?&lt;br&gt;&lt;br&gt;&lt;b&gt;Edit&lt;/b&gt;: wie ich die vars-Klasse aufbaue ist klar, es geht mir nur darum, wie ich verhindere, dass die vars-Klasse bei jeder Instanzierung eines neuen Objekts alles neu aus der Datenbank holen muss&lt;br/&gt;</description>
      <pubDate>Fri, 14 Sep 2007 16:30:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t521323,4341733.html#4341733</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2007-09-14T16:30:34Z</dc:date>
    </item>
    <item>
      <title>Hilfe bei Problemlösung beim OOP</title>
      <link>http://forum.geizhals.at/t521323,4341745.html#4341745</link>
      <description>Hi!&lt;br&gt;&lt;br&gt;Ich möchte folgendes erreichen: eine Reihe von Klassen-Methoden sollen auf einen Pool von Daten zugreifen können. Diese Daten kommen aus der Datenbank und ich möchte nicht, dass jedes Mal, wenn ich ein Objekt einer Klasse erstelle, diese Daten neu aus der Datenbank geholt werden müssen.&lt;br&gt;&lt;br&gt;Ich will in jeder Methode in jeder Klasse über $this-&gt;vars["VAR_NAME"] (oder dergleichen) auf diesen Datenpool zugreifen können.&lt;br&gt;&lt;br&gt;Wenn ich im Konstruktor jeder Klasse ein vars-Objekt erzeuge, wird ja jedes Mal über den Konstruktor der var-Klasse alles neu aus der Datenbank eingelesen und das ist natürlich schlecht.&lt;br&gt;&lt;br&gt;Wie mache ich das am besten?&lt;br&gt;&lt;br&gt;&lt;b&gt;Edit&lt;/b&gt;: wie ich die vars-Klasse aufbaue ist klar, es geht mir nur darum, wie ich verhindere, dass die vars-Klasse bei jeder Instanzierung eines neuen Objekts alles neu aus der Datenbank geholt werden muss&lt;br/&gt;</description>
      <pubDate>Fri, 14 Sep 2007 16:30:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t521323,4341745.html#4341745</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2007-09-14T16:30:34Z</dc:date>
    </item>
  </channel>
</rss>
