« Patrons de conception/Fabrique abstraite » : différence entre les versions

Contenu supprimé Contenu ajouté
Frór (discussion | contributions)
Annulation des modifications 31608108 par Mikaelkael (Discuter) Les portions de code vont à l'essentiel.
Frór (discussion | contributions)
Ligne 265 :
 
<source lang="php">
/*
* Fabrique abstraite
* GUIFactory example
*/
abstract class GUIFactory {
public static function getFactory() {
Ligne 295 ⟶ 294 :
abstract class Button {
private $caption;
public abstract function paintrender();
public function getCaption(){
Ligne 306 ⟶ 305 :
class WinButton extends Button {
public function paintrender() {
echoreturn "I'mJe asuis un WinButton: ".$this->getCaption();
}
}
class OSXButton extends Button {
public function paintrender() {
echoreturn "I'mJe asuis un OSXButton: ".$this->getCaption();
}
}
Ligne 319 ⟶ 318 :
$aFactory = GUIFactory::getFactory();
$aButton = $aFactory->createButton();
$aButton->setCaption("PlayDémarrage");
echo $aButton->paintrender();
 
//Le rendu est
//output is
//I'mJe asuis un WinButton: PlayDémarrage
//orou
//I'mJe asuis un OSXButton: PlayDémarrage
</source>