作用说明
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)<br>'; } } 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)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理