AllesKlar
вставлю свои 5 копеек.
А какой смысл в функции "getTset()", зачем она вообще тут нужна ?
По мне ана тут вообще лишняя, или я что-то не понимаю ?
Цитата (Kusss @ 1.11.2015 - 15:11) |
зачем она вообще тут нужна |
Цитата (Valick @ 1.11.2015 - 14:30) |
удобнее держать массив отдельным файлом и просто инклюжить |
Цитата (Kusss @ 1.11.2015 - 14:11) |
AllesKlar вставлю свои 5 копеек. А какой смысл в функции "getTset()", зачем она вообще тут нужна ? По мне ана тут вообще лишняя, или я что-то не понимаю ? |
Цитата (AllesKlar @ 1.11.2015 - 19:03) |
как вспомню, каким идиотом был в глазах "этих тупых старперов" |
Цитата (Valick @ 1.11.2015 - 18:13) |
чем отличается объявление переменной от объявления функции или класса? |
Цитата (Ron @ 1.11.2015 - 20:13) |
Я бы вообще сначала обучал базам данных, а уж потом ЯП |
Цитата (Ron @ 1.11.2015 - 20:13) |
Да там всё надо переписывать абсолютно. |
Цитата |
Слушай Kusss, у остальных "горе от ума". |
echo "Hello World";
/********************************************************************
Model-View-Controller implementation according to POSA
(Pattern-Oriented Software Architecture
http://www.hillside.net/patterns/books/Siemens/book.html)
********************************************************************/
class HelloWorldController {
private $model;
function __construct($model) {
$this->model = $model;
}
function handleEvent($args) {
$this->model->setStrategy($args[2]);
$this->model->addText($args[1]);
}
}
class HelloWorldModel {
private $text;
private $observers = array();
private $strategy;
function attach($observer) {
$this->observers[] = $observer;
}
function getData() {
$facade = new HelloWorldFacade($this->strategy);
return $facade->getHelloWorld().$this->text."
";
}
function addText($text='') {
$this->text = $text;
$this->notify();
}
function setStrategy($strategy) {
$this->strategy = $strategy;
}
function notify() {
foreach ($this->observers as $observer) {
$observer->update();
}
}
}
class HelloWorldView {
private $model;
function initialize($model) {
$this->model = $model;
$model->attach($this);
return $this->makeController();
}
function makeController() {
return new HelloWorldController($this->model);
}
function update() {
$this->display();
}
function display() {
echo $this->model->getData();
}
}
/*********************************************************************
"Business logic"
********************************************************************/
class HelloWorld {
function execute() {
return "Hello world";
}
}
class HelloWorldDecorator {
private $helloworld;
function __construct($helloworld) {
$this->helloworld = $helloworld;
}
function execute() {
return $this->helloworld->execute();
}
}
abstract class HelloWorldEmphasisStrategy {
abstract function emphasize($string);
}
class HelloWorldBangEmphasisStrategy extends HelloWorldEmphasisStrategy {
function emphasize($string) {
return $string."!";
}
}
class HelloWorldRepetitionEmphasisStrategy extends HelloWorldEmphasisStrategy {
function emphasize($string) {
return $string." and ".$string." again";
}
}
class HelloWorldEmphasizer extends HelloWorldDecorator {
private $strategy;
function HelloWorldEmphasizer($helloworld,$strategy) {
$this->strategy = $strategy;
parent::__construct($helloworld);
}
function execute() {
$string = parent::execute();
return $this->strategy->emphasize($string);
}
}
class HelloWorldStrategyFactory {
static function make($type) {
if ($type == 'repetition') return self::makeRepetitionStrategy();
return self::makeBangStrategy();
}
static function makeBangStrategy() {
return new HelloWorldBangEmphasisStrategy;
}
static function makeRepetitionStrategy() {
return new HelloWorldRepetitionEmphasisStrategy;
}
}
class HelloWorldFormatter extends HelloWorldDecorator {
function execute() {
$string = parent::execute();
return $string."
";
}
}
class HelloWorldFacade {
private $strategy;
function __construct($strategyType) {
$this->strategy = HelloWorldStrategyFactory::make($strategyType);
}
function getHelloWorld() {
$formatter = new HelloWorldFormatter(
new HelloWorldEmphasizer(
new HelloWorld,$this->strategy));
return $formatter->execute();
}
}
$model = new HelloWorldModel;
$view = new HelloWorldView;
$controller = $view->initialize($model);
$controller->handleEvent($_SERVER['argv']);