每天一设计模式之桥接模式

来源:互联网 发布:mac上可以玩的网游 编辑:程序博客网 时间:2024/05/21 06:36
<script type="text/javascript"><!--google_ad_client = "pub-9528830580198364";/* 大矩形336x280, 创建于 09-5-28 */google_ad_slot = "4731086345";google_ad_width = 336;google_ad_height = 280;//--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

每天一设计模式之桥接模式

桥接模式:将抽象部分与他的实现部分分离,是他们都可以独立的变化

桥接模式结构图:

桥接模式结构图

结构图实现代码:

abstraction:

package com.test;

public abstract class Abstraction {

    protected Implementor implementor;

    public void setAbstraction(Implementor implementor) {
        this.implementor = implementor;
    }

    public void Operation() {
        implementor.Operatoin();
    }
}

 

refinedAbstraction:

package com.test;

public class RefinedAbstraction extends Abstraction {

    @Override
    public void Operation() {
        implementor.Operatoin();

    }

}

implementor:

package com.test;

public abstract class Implementor {
    public abstract void Operatoin();
}

 

ConreteImplementorA:

package com.test;

public class ConcreteImplementorA extends Implementor {

    @Override
    public void Operatoin() {
        System.out.println("具体实现A的方法执行");

    }

}

ConreteImplementorB:

package com.test;

public class ConcreteImplementorB extends Implementor {

    @Override
    public void Operatoin() {
        System.out.println("具体实现B的方法执行");

    }

}

 

测试:

package com.test;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Abstraction ab = new RefinedAbstraction();
        ab.setAbstraction(new ConcreteImplementorA());

        ab.Operation();

        ab.setAbstraction(new ConcreteImplementorB());
        ab.Operation();

    }

}

原创粉丝点击