//桥接模式 //场景 论坛给用户发短信,站内,email或者手机号码; //interface mess{ // public function send(); //} 站内发送 //class zh implements mess{ // public function send(){ // echo '站内发送'; // } //} //class emaile implements mess{ // public function send(){ // echo '手机短信'; // } //} //class mss implements mess{ // public function send(){ // echo '手机'; // } //} //内容也分普通,加急,特急; //class putong implements mess //class jiaji implements mess //class teji implements mess /** * 思考 信的发送方式 * 信的紧急情况 * 如果每个信息都可以使用 三种发送方式就会产生9中发送信息 * 会发生子类非常多 * 这就需要 桥接模式 */ //桥接模式 abstract class info{ protected $send = null; // public function __construct($send){ $this->send = $send; } abstract function msg($content); public function send($to,$content){ $content = $this->msg($content); $this->send->send($to,$content); } } //信息类 //普通类 class comm extends info{ public function msg($content){ return '普通'.$content; } } //紧急类 class warninfo extends info{ public function msg($content){ return '紧急'.$content; } } //特急类 class daninfo extends info{ public function msg($content){ return '特急'.$content; } } //发送方式类 //站内 class zn { public function send($to, $content){ echo '站内给'.$to.'内容是'.$content; } } //电子邮件 class email { public function send($to, $content){ echo 'email给'.$to.'内容是'.$content; } } //短信 class phone { public function send($to, $content){ echo '短信给'.$to.'内容是'.$content; } } //用站内发普通信息 $msg = new comm(new zn()); $msg->send('小明','你好'); //思考:虽然产生了耦合,但是会给我们减少了信息和发送方式组合起来类的数量
PHP 设计模式(桥接模式)
最新推荐文章于 2023-08-03 16:16:41 发布