php、java实现桥接模式

来源:互联网 发布:r230清零软件 编辑:程序博客网 时间:2024/06/14 10:18

该模式主要目的在于解耦,将模块的粒度分隔的更细,便于需求的更改

类图
这里写图片描述

java实现

public interface Implementor {    public void doSomething();    public void doAnything();}
public class RealImplementor implements Implementor {    @Override    public void doSomething() {    }    @Override    public void doAnything() {    }}
public abstract class AbstractRole {    protected Implementor implementor;    public AbstractRole(Implementor implementor)    {        this.implementor = implementor;    }    public abstract void doSomething();    public abstract void doAnything();}
public class RealRole extends AbstractRole {    public RealRole(Implementor implementor) {        super(implementor);    }    @Override    public void doSomething() {        super.implementor.doSomething();    }    @Override    public void doAnything() {        super.implementor.doAnything();    }}

php实现

interface Implementor{    public function doSomething();    public function doAnything();}class RealImplementor implements Implementor{    public function doSomething()    {        echo 'doSomething';    }    public function doAnything()    {        echo 'doAnything';    }}abstract class AbstractRole{    protected $implementor;    public function __construct(Implementor $implementor)    {        $this->implementor = $implementor;    }    public abstract function doSomething();    public abstract function doAnything();}class RealRole extends AbstractRole{    public function __construct(Implementor $implementor)    {        parent::__construct($implementor);    }    public function doSomething()    {        $this->implementor->doSomething();    }    public function doAnything()    {        $this->implementor->doAnything();    }}$realRole = new RealRole(new RealImplementor());$realRole->doSomething();$realRole->doAnything();