18-桥接模式
目录
代码示例
<?php
namespace DesignPattern\BridgeDemo;
/**
* Description of BridgeDemo
* 桥接
* @author jm
*/
class BridgeDemo
{
//put your code here
public static function main()
{
$channel = new Channel();
$channel->setChannel(new Huawei());
$channel->login();
$channel->order();
}
}
interface IChannel{
public function login();
public function order();
}
class Xiaomi implements IChannel{
public function login(){
echo "login Xiaomi.\n";
}
public function order(){
echo "login Xiaomi.\n";
}
}
class Huawei implements IChannel{
public function login(){
echo "login Huawei.\n";
}
public function order(){
echo "order Huawei.\n";
}
}
class Bridge{
private $_channel = null;
public function setChannel($channel){
$this->_channel = $channel;
}
public function getChannel(){
return $this->_channel;
}
}
class Channel extends \DesignPattern\BridgeDemo\Bridge{
public function login(){
$this->getChannel()->login();
}
public function order(){
$this->getChannel()->order();
}
}
BridgeDemo::main();
输出
login Huawei.
order Huawei.
这样,就通过对Bridge类的调用,实现了对接口Sourceable的实现类SourceSub1和SourceSub2的调用。
JDBC连接的原理,有数据库学习基础的,一结合就都懂了。
小结
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。
桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化 。
像JAVA中常说的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。
本文部分收藏来自互联网,仅用于学习研究,著作权归原作者所有,如有侵权请联系删除
markdown 9ong@TsingChan