<?php abstract class Command { final function __construct() { } function execute(HttpRequest $request) { $this->doExecute($request); } abstract function doExecute(HttpRequest $request) ; } public class HttpRequest { private $properties; private $feedback = array(); function __construct() { $this->init(); } function init() { if (isset($_SERVER['REQUEST_METHOD'])) { $this->properties = $_REQUEST; return; } foreach($_SERVER['argv'] as $arg) { if (strpos($arg,'=')) { list($key,$val) = explode("=", $arg); $this->setProperty($key,$val); } } } function getProperty($key) { if (isset($this->properties[$key])) { return $this->properties[$key]; } } function setProperty($key,$val) { $this->properties[$key] = $val; } function addFeedback($msg) { array_push($this->feedback, $msg); } function getFeedback() { return this->feedback; } function getFeedbackString($separator = "\n") { return implode( $separator,$this->feedback) ; } } ?>
?最近在看php设计模式,看到例子不错,顺便做下记录吧,熟悉struts1.x的朋友一定不会陌生