为了账号安全,请及时绑定邮箱和手机立即绑定

关于装饰模式引发的思考

关于装饰模式引发的思考

千万里不及你 2019-03-22 23:15:14
本人是一个模式学习的新手,学习到装饰模式的时候,我想到了一个问题,我是否可以利用一个属性值$message来对内容进行一些存储,就编下了下面的代码,始终没办法找到原因,我想得到的结果是:html过滤敏感词汇过滤测试一下 但是结果却是html过滤测试一下,于是我就思考是否是没有将$msg存到$message中,但是但是为什么结果又是html过滤测试一下,中断测试也没能找到答案,所以再这里想得到各位的帮助,一起讨论讨论这段代码,<?php    abstract class messageDetail    {        abstract function filter($msg);    }    class setmessage extends messageDetail    {        public function filter($msg)        {            return $msg;        }    }    class messageHandle extends messageDetail    {        public $message;        public $obj;        public function __construct($obj)        {            $this -> obj = $obj;        }        public function filter($msg)        {            $this -> message = $msg;        }    }    class htmlFilter extends messageHandle     {        public function filter($msg)        {            parent::filter($msg);            return 'html过滤'.$this->message;        }    }    class ensitiveFilter extends messageHandle    {        public function filter($msg)        {            parent::filter($msg);            return '敏感词汇过滤'.$this->message;        }    }    $obj = new htmlFilter(new ensitiveFilter(new setmessage()));    echo $obj -> filter('测试一下');
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 484 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信