PHP设计模式之如何实现投诉页面
创始人
2024-12-10 20:02:19
0次

具体内容如下

php代码:

';
  }

  final protected function __clone() {
    return false;
  }

  public function conn() {
    echo 'Mysql连接成功
';   } } /**  * 工厂模式  */ interface Factory {   function createDB(); } class MysqlFactory implements Factory {   public function createDB() {     echo 'Mysql工厂创建成功
';     return MysqlSingle::getInstance();   } } /**  * 根据用户名显示不同风格  * 观察者模式  */ class Observer implements SplSubject {   protected $_observers = NULL;   public $_style = NULL;   public function __construct($style) {     $this->_style = $style;     $this->_observers = new SplObjectStorage();   }   public function show() {     $this->notify();   }   public function attach(SplObserver $observer) {     $this->_observers->attach($observer);   }   public function detach(SplObserver $observer) {     $this->_observers->detach($observer);   }   public function notify() {     $this->_observers->rewind();     while ($this->_observers->valid()) {       $observer = $this->_observers->current();       $observer->update($this);       $this->_observers->next();     }   } } class StyleA implements SplObserver {   public function update(SplSubject $subject) {     echo $subject->_style . ' 模块A
';   } } class StyleB implements SplObserver {   public function update(SplSubject $subject) {     echo $subject->_style . ' 模块B
';   } } /**  * 根据不同方式进行投诉  * 桥接模式  */ class Bridge {   protected $_obj = NULL;   public function __construct($obj) {     $this->_obj = $obj;   }   public function msg($type) {        }   public function show() {     $this->msg();     $this->_obj->msg();   } } class BridgeEmail extends Bridge {   public function msg() {     echo 'Email>>';   } } class BridgeSms extends Bridge {   public function msg() {     echo 'Sms>>';   } } class Normal {   public function msg() {     echo 'Normal
';   } } class Danger {   public function msg() {     echo 'Danger
';   } } /**  * 适配器模式  */ class Serialize {   public $content = NULL;   public function __construct($content) {     $this->content = serialize($content);   }   public function show() {     return '序列化格式:
' . $this->content;   } } class JsonAdapter extends Serialize {   public function __construct($content) {     parent::__construct($content);     $tmp = unserialize($this->content);     $this->content = json_encode($tmp, TRUE);   }   public function show() {     return 'Json格式:
' . $this->content;   } } /**  * 在投诉内容后自动追加  * 装饰器模式  */ class Base {   protected $_content = NULL;   public function __construct($content) {     $this->_content = $content;   }   public function getContent() {     return $this->_content;   } } class Decorator {   private $_base = NULL;   public function __construct(Base $base) {     $this->_base = $base;   }   public function show() {     return $this->_base->getContent() . '>>系统时间:' . date('Y-m-d H:i:s', time());   } } /**  * 分级举报处理功能  * 责任链模式  */ class level1 {   protected $_level = 1;   protected $_top = 'Level2';   public function deal($level) {     if ($level <= $this->_level) {       echo '处理级别:1
';       return;     }     $top = new $this->_top;     $top->deal($level);   } } class level2 {   protected $_level = 2;   protected $_top = 'Level3';   public function deal($level) {     if ($level <= $this->_level) {       echo '处理级别:2
';       return;     }     $top = new $this->_top;     $top->deal($level);   } } class level3 {   protected $_level = 3;   protected $_top = 'Level2';   public function deal($level) {     echo '处理级别:3
';     return;   } } if (!empty($_POST)) {   echo '

PHP设计模式

';   //连接数据库——工厂+单例模式   $mysqlFactory = new MysqlFactory();   $single = $mysqlFactory->createDB();   $single->conn();   echo '
';   //观察者模式   $username = $_POST['username'];   $ob = new Observer($username);   $a = new StyleA();   $ob->attach($a);   $b = new StyleB();   $ob->attach($b);   $ob->show();   echo '
';   $ob->detach($b);   $ob->show();   echo '
';   //桥接模式   $typeM = $_POST['typeM'];   $typeN = 'Bridge' . $_POST['typeN'];   $obj = new $typeN(new $typeM);   $obj->show();   echo '
';   //适配器模式   $post = $_POST;   $obj = new Serialize($post);   echo $obj->show();   echo '
';   $json = new JsonAdapter($post);   echo $json->show();   echo '
';   echo '
';   //装饰器模式   $content = $_POST['content'];   $decorator = new Decorator(new Base($content));   echo $decorator->show();   echo '
';   //责任链模式   echo '
';   $level = $_POST['level'];   $deal = new Level1();   $deal->deal(intval($level));   return; } require("0.html");

html代码:




  
    PHP设计模式
    
    
    
  
  
    
      

用户名

               Tom         Lily              

投诉方式

               Normal         Danger                       Email         Sms              

处理级别

               1         2         3              

投诉内容

             提交        

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...