首页 > 代码库 > php装饰器
php装饰器
<?php /* * 用一个类来装饰另一个类,动态的给一个对象增加一些额外功能,这些功能一般是在这个对象调用方法前或方法后 * 比如我们要给User类增加一个登陆日志的功能 */ // 抽象构件 abstract class Component { abstract public function login($time); } // user类 class User extends Component { private $login_time; public function login($time) { $this->login_time = $time; } } // 装饰器 class LogDecorate extends Component { private $user; private $time; /** * Log constructor. */ public function __construct(User $user) { $this->user = $user; } public function login($time) { $this->user->login($time); $this->log($time); } public function log($time) { echo sprintf("Log: login %d",$time) . PHP_EOL; } } $user = new User(); $log = new LogDecorate($user); $log->login(time());
php装饰器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。