当遇到不良言论的筛选,往往需要该设计模式。分为三部分,数据的提供源,数据的替换处理,调用的控制部分。
<?php
/*
* 要被翻译数据的源
* */
class User{
public $user;
public $saymessage;
function __construct($user){
$this->user = $user;
}
function say(){
return "{$this->user}:hehe";
}
}
/*
* 翻译的处理者
* */
class UserTranslate{
static function TheChange(){
return "对方对你高冷";
}
}
/*
* 翻译的调用和组装
* */
class Interpreter{
//保存有被处理数据的对象
protected $_user = NULL;
function __construct($user){
$this->_user = $user;
}
function myreplace(){
//获得替换数据
$replacemessage = UserTranslate::TheChange();
//数据替换
$message = preg_replace('/hehe/', $replacemessage, $this->_user->say());
return $message;
}
}
$user = new User('xin');
$inter = new Interpreter($user);
echo $inter->myreplace();