zoukankan      html  css  js  c++  java
  • 代理模式三:适配器模式

    简介

    将一个接口转换为客户端或服务器端所期待的接口,从而使两个接口不兼容的类可以在一起工作,高级的接口转换表现形式

    代码

    • 三方接口
    public interface OriginalLogger {
    
        void d(int priority,String message,Object ... obj);
    }
    
    • 三方接口实现类
    public class OriginalLoggerImpl implements OriginalLogger {
        @Override
        public void d(int priority, String message, Object... obj) {
            System.out.println(String.format("OriginalLoggerImpl 日志打印记录:%s",message));
        }
    
    }
    
    • 目标接口
      即我们要将三方接口转换为我们即将使用的目标接口
    public interface NowLogFactory {
    
        void debug(Integer tag,String message);
    
    }
    
    • 适配器
      要实现目标接口,创建三方接口实现类对象
    public class NowLogFactoryimpl implements NowLogFactory {
    
       private OriginalLogger originalLogger;
    
        public NowLogFactoryimpl(OriginalLogger originalLogger){
            this.originalLogger=originalLogger;
        }
    
        @Override
        public void debug(Integer tag, String message) {
              originalLogger.d(1,message);
        }
    }
    
    • 测试类
    public class PatternTest {
    
    
        public static void main(String[] args) {
    
            NowLogFactory factory=new NowLogFactoryimpl(new OriginalLoggerImpl());
            factory.debug(1,"改变后的日志打印");
        }
    
    }
    

    总结

    此设计模式较为简单,使用面积较广,常见的: 比如日志门面技术,slfj4j;
    优点:可以进行代码整合,用一套接口,底层可以用不同的实现类;

    Gitee代码地址

    https://gitee.com/zhuayng/foundation-study.git

    参考:

    https://blog.csdn.net/ShuSheng0007/article/details/116161690

    XFS
  • 相关阅读:
    mongodb分片
    mongodb副本集搭建
    mongodb数据导入导出
    mongodb安装、配置
    redis副本集
    redis安装,第一天
    redis常用命令
    mac中安装 RabbitMQ
    Vue常用模块
    nodejs,koa2常用模块
  • 原文地址:https://www.cnblogs.com/xiaofengshan/p/15155684.html
Copyright © 2011-2022 走看看