zoukankan      html  css  js  c++  java
  • java设计模式--结构型模式--适配器模式

     1                                                 适配器模式
     2  概述
     3     将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
     4  
     5  
     6  适用性
     7     1.你想使用一个已经存在的类,而它的接口不符合你的需求。
     8 
     9     2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口
    10       可能不一定兼容的类)协同工作。
    11 
    12     3.(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行
    13       子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
    14  
    15  
    16  参与者
    17     1.Target
    18       定义Client使用的与特定领域相关的接口。
    19 
    20     2.Client
    21       与符合Target接口的对象协同。
    22 
    23     3.Adaptee
    24       定义一个已经存在的接口,这个接口需要适配。
    25 
    26     4.Adapter
    27       对Adaptee的接口与Target接口进行适配

    测试类:

    1 public class Test {
    2 
    3     public static void main(String[] args) {
    4         Target target = new Adapter(new Adaptee());
    5         target.adapteeMethod();
    6         target.adapterMethod();
    7     }
    8 }
     1 public class Adapter implements Target {
     2 
     3     private Adaptee adaptee;
     4     
     5     public Adapter(Adaptee adaptee) {
     6         this.adaptee = adaptee;
     7     }
     8 
     9     public void adapteeMethod() {
    10         adaptee.adapteeMethod();
    11     }
    12 
    13     public void adapterMethod() {
    14         System.out.println("Adapter method!");
    15     }
    16 }
    1 public interface Target {
    2 
    3     void adapteeMethod();
    4     
    5     void adapterMethod();
    6 }
    1 public class Adaptee {
    2 
    3     public void adapteeMethod() {
    4         System.out.println("Adaptee method!");
    5     }
    6 }
  • 相关阅读:
    caffe绘制训练过程的loss和accuracy曲线
    ROC曲线和PR曲线
    Lintcode--009(单词切分)
    已知有字符串foo=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById”
    web前端性能优化汇总
    Restful风格的前后端分离
    渐进式 JPEG (Progressive JPEG)来提升用户体验
    ESLint检测JavaScript代码
    JavaScript对象浅复制
    JavaScript对象深复制
  • 原文地址:https://www.cnblogs.com/huzi007/p/3988439.html
Copyright © 2011-2022 走看看