Jeena Paradies: PHP OOP Klassenaufteilung

Beitrag lesen

Hallo,

$foo = new Foo;
print $foo->XR->xr("Heute ist %tag\n", array('tag' => date('D'))); # Heute ist Tue

  
Nope, das ist kein (gutes) Beispiel für ein delegate. Ich probier mal mein Glück, vielleicht hilft es jemandem  
  
~~~php
<?php  
/* Printer interface and implementations */  
  
interface iPrinter {  
    public function print();  
    public function getInfo();  
}  
  
class NormalPrinter implements iPrinter {  
    private $printer;  
  
    function __construct() {  
        $this->printer = printer_open("HP Deskjet 930c");  
    }  
  
    function __destruct() {  
        printer_close($this->printer);  
    }  
  
    public function print($content) {  
        printer_write($this->printer, $content);  
    }  
  
    public function info() {  
        return "HP Deskjet 930c";  
    }  
}  
  
class VirtualPrinter implements iPrinter {  
  
    public function print($content) {  
        echo $content;  
    }  
  
    public function info() {  
        return "A stdout printer";  
    }  
}  
  
/* */  
  
class Calculator {  
    public $printerDelegate;  
  
    function sum($a, $b) {  
        $this->print("{$a} + {$b} = {$a + $b}");  
    }  
  
    function difference($a, $b) {  
        $this->print("{$a} - {$b} = {$a - $b}");  
    }  
  
    private function print($content) {  
        if ($this->printerDelegate) {  
            $this->printerDelegate->print($content . "\n");  
        }  
    }  
}  
  
  
// Testausführung  
  
$printer = new NormalPrinter();  
  
$calculator = new Calculator();  
$calculator->printerDelegate = $printer; // Wir setzen den normalen Drucker als delegate ein  
  
$calculator->sum(2, 5); // Druckt 7 auf dem HP Deskjet aus  
$calculator->difference(10, 4); // Druckt 6 auf dem HP Deskjet aus  
  
$virtualPrinter = new VirtualPrinter();  
$calculator->printerDelegate = $virtualPrinter; // Wir ändern den Delegate zu einem virtuellen Drucker  
  
$calculator->sum(2, 5); // Der gleiche Aufruf wie oben gibt 7 auf stdout aus  
$calculator->difference(10, 4); // Der gleiche Aufruf wie oben gibt 6 auf stdout aus  

Jeena

0 101

PHP OOP Klassenaufteilung

Tom
  • php
  1. 0
    Jeena Paradies
    1. 0
      jobo
      1. 0
        Malcolm Beck´s
        1. 0
          jobo
          1. 0

            PHP Zend-Framewok Installation nutzen

            Malcolm Beck´s
            1. 0
              Jeena Paradies
              1. 0
                Malcolm Beck´s
                1. 0
                  Jeena Paradies
                  1. 0
                    Malcolm Beck´s
                    1. 0
                      Jeena Paradies
                    2. 0
                      jobo
                2. 0
                  jobo
                  1. 0
                    Malcolm Beck´s
                    1. 0
                      Jeena Paradies
                      1. 0
                        Tom
                        1. 0
                          Jeena Paradies
                          1. 0
                            Tom
                            1. 0
                              Jeena Paradies
                              1. 0
                                Tom
                                1. 0
                                  Jeena Paradies
                                  1. 0
                                    dedlfix
                                    1. 0
                                      Jeena Paradies
                                      1. 0
                                        dedlfix
                                        1. 0
                                          Jeena Paradies
                                2. 0
                                  Sven Rautenberg
                              2. 0
                                Malcolm Beck´s
                                1. 0
                                  Jeena Paradies
                                  1. 0
                                    Malcolm Beck´s
                            2. 0
                              Malcolm Beck´s
                              1. 2
                                Sven Rautenberg
                                1. 0
                                  Malcolm Beck´s
                                  1. 0
                                    Sven Rautenberg
                                    1. 0
                                      Malcolm Beck´s
                                      1. 8
                                        Sven Rautenberg
                                        1. 0
                                          Malcolm Beck´s
                                        2. 2
                                          dedlfix
                                        3. 0

                                          PHP OOP, wie eine Klassenhierarchie entsteht

                                          Tom
                                        4. 0
                                          Malcolm Beck´s
                                          1. 0
                                            Jeena Paradies
                                            1. 1
                                              dedlfix
                                            2. 1
                                              Sven Rautenberg
                                              1. 0
                                                Jeena Paradies
                                          2. 1
                                            dedlfix
                                            1. 0
                                              Sven Rautenberg
                                              1. 0
                                                dedlfix
                                          3. 2
                                            Sven Rautenberg
                                            1. 0
                                              dedlfix
                                              1. 0
                                                Sven Rautenberg
                                                1. 0
                                                  dedlfix
                                              2. 0
                                                Tom
                                                1. 0
                                                  dedlfix
                                            2. 0
                                              Malcolm Beck´s
                                              1. 0
                                                Sven Rautenberg
                                                1. 0
                                                  Claudius L.
                                                  1. 0
                                                    Claudius L.
                                                  2. 1
                                                    dedlfix
                                                    1. 0
                                                      Claudius L.
                                                      1. 2
                                                        Sven Rautenberg
                                                  3. 0
                                                    Sven Rautenberg
                                                2. 0
                                                  Malcolm Beck´s
                            3. 0
                              Sven Rautenberg
                3. 1
                  Matti Mäkitalo
                  1. 0
                    Malcolm Beck´s
                4. 0
                  Vinzenz Mai
                  1. 0
                    Malcolm Beck´s
                    1. 0
                      jobo
        2. 0
          dedlfix
          1. 0
            Malcolm Beck´s
            1. 0
              Malcolm Beck´s
              1. 1

                Uralt-Software

                Kai345
                • meinung
                1. 0
                  Malcolm Beck´s
                  1. 0
                    Kai345
                    1. 0
                      Malcolm Beck´s
            2. 0
              dedlfix
      2. 0
        Jeena Paradies
  2. 2
    Sven Rautenberg
    1. 0
      Tom
  3. 0
    hotti
    1. 0
      dedlfix
      1. 0
        Jeena Paradies
        1. 2
          dedlfix
          1. 0
            Jeena Paradies
      2. 0
        hotti
        1. 0
          Jeena Paradies
          1. 0
            Tom
            1. 0
              Jeena Paradies
              1. 0
                dedlfix
                1. 0
                  Jeena Paradies
                  1. 0
                    Sven Rautenberg
                    1. 0
                      Jeena Paradies
                      1. 0
                        dedlfix
                2. 0
                  Tom
                  1. 0
                    dedlfix
            2. 0
              Sven Rautenberg
        2. 2
          dedlfix
        3. 0
          hotti
      3. 0
        Matti Mäkitalo
        1. 0
          dedlfix
  4. 1
    jobo
  5. 0
    hotti