作用说明
1、桥接模式分离抽象接口及其实现部分,实现解耦,比继承更好的解决方案。
2、便于扩展,桥接模式比继承更灵活,在减少创建类的同时也便于组合。
3、桥接模式可用于两个独立变化维度。
实例
// 员工分组 abstract class Staff{ abstract public function staffData();} class CommonStaff extends Staff{ public function staffData() { return "小名,小红,小黑"; }} class VipStaff extends Staff{ public function staffData() { return '小星、小龙'; }} // 发送形式 // 抽象父类abstract class SendType{ abstract public function send($to, $content);} class QQSend extends SendType{ public function __construct() { // 与QQ接口连接方式 } public function send($to, $content) { return $content. '(To '. $to . ' From QQ)
'; }} class SendInfo{ protected $_level; protected $_method; public function __construct($level, $method) { // 这里可以使用单例控制资源的消耗 $this->_level = $level; $this->_method = $method; } public function sending($content) { $staffArr = $this->_level->staffData(); $result = $this->_method->send($staffArr, $content); echo $result; }} // 客户端调用 $info = new SendInfo(new VipStaff(), new QQSend());$info->sending( '回家吃饭'); $info = new SendInfo(new CommonStaff(), new QQSend());$info->sending( '继续上班');输出结果: 回家吃饭(To 小星、小龙 From QQ)继续上班(To 小名,小红,小黑 From QQ)
以上就是php桥接模式的作用,希望对大家有所帮助。