Weitere Artikel aus dem Webentwickler Blog
Datenbankprogrammierung - PHP - Grundlagen

 

 

Das Composite-Entwurfsmuster in PHP

Das Composite -Entwurfsmuster gehört zur Gruppe der Strukturmuster. Das Composite-Entwurfsmuster fügt mehrere Objekte zu einer Baumstruktur zusammen und ermöglicht es, sie von außen wie ein einzelnes zu verwenden.

 

 

Um ein Composite-Entwurfsmuster in PHP zu implementieren, führen Sie folgende Schritte durch

1. Definieren Sie eine Schnittstelle für ein einzelnes Objekt des Baums, falls sie nicht bereits zuvor definiert wurde.

2. Implementieren Sie eine neue Klasse, die diese Schnittstelle erfüllt. Fügen Sie dieser Klasse eine weitere Methode hinzu, an die Sie beliebige Objekte übergeben können, die die Schnittstelle erfüllen. Speichen Sie die übergebenen Objekte als Array in einer Objekteigenschaft.

3. Implementieren Sie sämtliche von der Schnittstelle geforderten Methoden so, dass diese über die Kindobjekte iterieren und den Methodenaufruf der Reihe nach an jedes der Kinder weiterdelegieren.

4. Erzeugen Sie beliebige Objekte, um diese zu einem Baum zusammenzufügen.

5. Verwenden Sie in Ihrer Anwendung nun diesen Objektbaum anstelle eines einzel­nen Objekts.

 

Wenn Sie diese Schritte befolgen, steht dem Einsatz von Composite-Entwurfsmustern nichts im Wege.

 

Das Composite-Entwurfsmuster in PHPMithilfe des folgenden Anwendungsbeispiels können Sie mehrere Filme in einer Filmliste verwalten. Die Klasse EinFilm stellt jeweils ein konkretes Objekt dar. Die Klasse DiverseFilme ist eine Gruppe von EinFilm-Objekten.

Beide Klassen können Filminformationen über den Filmtitel und Filmregie ausgeben. EinFilm enthält lediglich Informationen über einen Film, DiverseFilme enthält Informationen über die Filme in der Filmliste.

 

Beide Klassen verfügen über die Methoden hinzufuegen() und entfernen(). Diese sind jedoch lediglich in der Klasse DiverseFilme einsetzbar. Die EinFilm-Klasse liefert FALSE, falls diese Methoden verwendet werden sollten.

 

Beispiel - FilmArchiv.php

<?php

abstract class FilmArchiv
{
abstract protected function getFilmInfo($vorherigerFilm);
abstract protected function getFilmAnzahl();
abstract protected function setFilmAnzahl($neuer_zaehler);
abstract protected function hinzufuegen($einFilm);
abstract protected function entfernen($einFilm);
}

?>

 

Beispiel - EinFilm.php

<?php

include_once('FilmArchiv.php');

class EinFilm extends FilmArchiv
{

private $titel;
private $regie;

public function __construct($titel, $regie)
{
$this->titel = $titel;
$this->regie = $regie;
}

public function getFilmInfo($film_auswahl)
{
if (1 == $film_auswahl)
{
return $this->titel . " von " . $this->regie;
}
else
{
return FALSE;
}
}

public function getFilmAnzahl()
{
return 1;
}

public function setFilmAnzahl($neuer_zaehler)
{
return FALSE;
}

public function hinzufuegen($einFilm)
{
return FALSE;
}

public function entfernen($einFilm)
{
return FALSE;
}

}

?>

 

Beispiel - DiverseFilme.php

Ganzen Artikel lesen... 

Kundenkommentare
Social Bookmarks
elo-web bookmarken bei: Mr. Wong elo-web bookmarken bei: Webnews elo-web bookmarken bei: Icio elo-web bookmarken bei: Oneview elo-web bookmarken bei: Yigg elo-web bookmarken bei: Linkarena elo-web bookmarken bei: Digg elo-web bookmarken bei: Reddit elo-web bookmarken bei: Simpy elo-web bookmarken bei: StumbleUpon elo-web bookmarken bei: Netscape elo-web bookmarken bei: Furl elo-web bookmarken bei: Yahoo elo-web bookmarken bei: Blogmarks elo-web bookmarken bei: Diigo elo-web bookmarken bei: Technorati elo-web bookmarken bei: Newsvine elo-web bookmarken bei: Blinkbits elo-web bookmarken bei: Ma.Gnolia elo-web bookmarken bei: Smarking elo-web bookmarken bei: Netvouz elo-web bookmarken bei: Folkd elo-web bookmarken bei: Spurl elo-web bookmarken bei: Google elo-web bookmarken bei: Blinklist
URL zu dieser Seite
Einfach den Quelltext kopieren und auf Ihrer Webseite einbinden

Kontakt
Newsletter | Kontakt | RSS Feed
Warenkorb: 0 Artikel
Gesamtwert: EUR 0,00
Home PHP/MySQL & JavaScript  Das Composite-Entwurfsmuster in PHP