美文网首页爱编程,爱生活
Java设计模式<适配器模式>

Java设计模式<适配器模式>

作者: 熬夜的猫头鹰 | 来源:发表于2018-06-16 15:39 被阅读4次

Java设计模式<适配器模式>

意图

将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

场景

  • 系统需要使用现有的类,而此类的接口不符合系统的需要
  • 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口
  • 通过接口转换,将一个类插入另一个类系中

实例

在多种数据库添加数据的时候,不同的数据库提供的API不同,比如MYSQL插入数据的用的是Insert方法,而在redis中添加数据API方法是set,而现有系统的上册代码统一为put,这是就需要将set和insert转换为put.

代码

上层API为

public interface DataPersitentService {

    public int put(Object value);
}

mysql数据持久化的而的实现为

public class MysqlPersitent {

    public int insert(Object val){

        System.err.println(String.format("i am mysql ,and  i have put the value [%s] into mysql successfully",val));

        return 0;
    }

mysql数据持久化的而的实现为

public class RedisPersitent {

    public int set(Object val) {

        System.err.println(String.format("i am redis ,and  i have put the value  [%s] into redis successfully",val));

        return 0;

    }
}

适配器为

public class Adapter implements DataPersitentService {


    private final static MysqlPersitent mysqlPersitent = new MysqlPersitent();

    private final static RedisPersitent redisPersitent = new RedisPersitent();

    public int put(Object value) {
        mysqlPersitent.insert(value);
        redisPersitent.set(value);
        return 0;
    }
}

测试类为


public class DemoMain {
    public static void main(String[] args) {
        DataPersitentService dataPersitentServiceps = new Adapter();
        dataPersitentServiceps.put("test data");

    }
}

输出

i am mysql ,and  i have put the value [test data] into mysql successfully
i am redis ,and  i have put the value  [test data] into redis successfully


相关文章

  • Java设计模式<适配器模式>

    Java设计模式<适配器模式> 意图 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容...

  • 浅析Java设计模式【1】——观察者

    前情内容 浅析Java设计模式【1】——观察者 浅析Java设计模式【2】——适配器 浅析Java设计模式【3】—...

  • 浅析Java设计模式【2】——适配器

    前情内容 浅析Java设计模式【1】——观察者 浅析Java设计模式【2】——适配器 浅析Java设计模式【3】—...

  • java建造者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java单例模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java外观模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java适配器模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java观察者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java代理模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java策略模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

网友评论

    本文标题:Java设计模式<适配器模式>

    本文链接:https://www.haomeiwen.com/subject/qfsbeftx.html