Mazaný a líný programátor


30-03-2012 00:00 - Zdroj: php.vrana.cz
Vždycky jsem byl přesvědčen, že mazanost a lenost jsou dvě skvělé vlastnosti dobrého programátora. Vysvětlím to na kódu. Nejprve ukázka běžného přístupu: <?php class Conventional { private $a; private $b; private $c; private $d; public function getA() { return $this->a; } public function setA(A $a) { $this->a = $a; return $this; } public function getB() { return $this->b; } public function setB(B $b) { $this->b = $b; return $this; } public function getC() { return $this->c; } public function setC(C $c) { $this->c = $c; return $this; } public function getD() { return $this->d; } public function setD(D $d) { $this->b = $d; return $this; } } ?> A teď řešení od mazaného a líného programátora. API není totožné, ale to je svým způsobem záměr: <?php class SmartAndLazy { private $classes = array( 'a' => 'A', 'b' => 'B', 'c' => 'C', 'b' => 'D', ); private $vars = array(); public function __get($name) { return $this->vars[$name]; } public function __set($name, $value) { if (method_exists($this, "set$name")) { // ošetření speciálních případů $this->{"set$name"}($value); } elseif (!array_key_exists($name, $this->classes)) { trigger_error("Property $name is not defined."); } elseif (!($value instanceof $this->classes[$name])) { trigger_error("Invalid class for property $name, must be " . $this->classes[$name] . ".", E_USER_ERROR); } else { $this->vars[$name] = $value; ... - Pokračovat...
addthis





Poslední příspěvky z blogu:
php.vrana.cz



Zašlete svůj blog
Požadavky na Blog
Ochrana osobních údajů
Kontakty

This site uses Thumbshots previews