• 案例分析:设计模式与代码的结构特性


    总体来说设计模式分为三大类:

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    此次作业我们采用的是桥接模式:

    桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:

    实现代码:

    先定义接口:

    public interface Sourceable {  

      public void method();  

    分别定义两个实现类:

    public class SourceSub1 implements Sourceable {

    @Override
    public void method() {
    System.out.println("this is the first sub!");
    }
    }

    public class SourceSub2 implements Sourceable {

    @Override
    public void method() {
    System.out.println("this is the second sub!");
    }
    }

    定义一个桥,持有Sourceable的一个实例:

    public abstract class Bridge {
    private Sourceable source;

    public void method(){
    source.method();
    }

    public Sourceable getSource() {
    return source;
    }

    public void setSource(Sourceable source) {
    this.source = source;
    }
    }

    public class MyBridge extends Bridge {
    public void method(){
    getSource().method();
    }
    }

    测试类:

    public class BridgeTest {

    public static void main(String[] args) {

    Bridge bridge = new MyBridge();

    /*调用第一个对象*/
    Sourceable source1 = new SourceSub1();
    bridge.setSource(source1);
    bridge.method();

    /*调用第二个对象*/
    Sourceable source2 = new SourceSub2();
    bridge.setSource(source2);
    bridge.method();
    }
    }

    output:

    this is the first sub!
    this is the second sub!

    这样,就通过对Bridge类的调用,实现了对接口Sourceable的实现类SourceSub1和SourceSub2的调用。

  • 相关阅读:
    正则表达式
    iOS获取设备型号、设备类型等信息
    Dubbo-Zookeeper安装
    CentOS-常用安装
    多线程-线程通信
    JVM-高效并发
    静态代理与JDK动态代理
    JVM-类加载机制
    RPC原理及实现
    JVM-自动内存管理机制
  • 原文地址:https://www.cnblogs.com/Smarc/p/12008467.html
Copyright © 2020-2023  润新知