zoukankan      html  css  js  c++  java
  • 适配器模式

    适配器模式:

      将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本不兼容的类可以一起工作。

    类图:

    角色:

    -目标接口:Target 客户所期待的接口,目标可以是具体的或者抽象的类也可以是接口

    -需要适配的类Adaptee:

    -适配器 Adapter:通过包装一个需要适配的对象,把原接口转换成目标接口。

    实例:

     1 package adapter;
     2 
     3 public interface ITarget {
     4     void handleReq();
     5 }
     6 
     7  package adapter;
     8 
     9 /**
    10  * 被适配的类
    11  * (相当于例子中的,PS/2键盘)
    12  * @author Administrator
    13  *
    14  */
    15 public class Adaptee {
    16     public void request(){
    17         System.out.println("可以完成客户请求的需要的功能!");
    18     }
    19 }
    20 
    21 package adapter;
    22 
    23 /**
    24  * 适配器 (类适配器方式)
    25  * (相当于usb和ps/2的转接器)
    26  * @author Administrator
    27  *
    28  */
    29 public class Adapter extends Adaptee implements ITarget {
    30 
    31     @Override
    32     public void handleReq() {
    33         // TODO Auto-generated method stub
    34         super.request();
    35     }
    36 
    37 }
    View Code
     1 package adapter;
     2 
     3 public class Client {
     4     
     5     public void test1(ITarget t){
     6         t.handleReq();
     7     }
     8     public static void main(String[] args) {
     9         // TODO Auto-generated method stub
    10         Client client = new Client();
    11         Adaptee adaptee = new Adaptee();
    12         ITarget target = new Adapter2(adaptee);
    13         client.test1(target);
    14     }
    15 
    16 }
    View Code

    工作中的场景:

    --经常用来做旧系统改造和升级
    --如果我们的系统开发之后再也不需维护,那么很多模式都是没有必要的。

    --InputStreamReader(InputStream)
    --OutputStreamWriter(OutputStream)

  • 相关阅读:
    Servlet生命周期、配置Servletcontext 对象
    Http协议、web、Tomcat服务器、Servlet入门
    XML、CDATA、DTD、Schema约束、DOM4j
    多线程 Upload、类加载器、反射、配置文件
    0624 网络通信协议 UDP、TCP
    线程类、线程池
    commons-IO、多线程
    Properties类 序列化和反序列化Object 、Print
    转换流OutputStreamWriter 缓冲流
    字节流Stream(Output 、Input)、字符流(Reader、Writer)
  • 原文地址:https://www.cnblogs.com/ilinuxer/p/4946008.html
Copyright © 2011-2022 走看看