适配器模式

当客户端与服务端接口无法匹配的时候,适配器就起中间适配的左右。

现在看具体实现代码:

客户端接口

package com.whereta.adapter;

/**
 * Vincent 创建于 2016/4/21.
 * 客户端
 */
public interface IClient {
    /**
     * 根据用户id获取用户名字
     * @param id
     * @return
     */
    String getName(int id);

}

服务端实现代码

package com.whereta.adapter;

/**
 * Vincent 创建于 2016/4/21.
 */
public class Server {

    public String getUserName(int id){
        return "Name:"+id;
    }

}

适配类

package com.whereta.adapter;

/**
 * Vincent 创建于 2016/4/21.
 * <p>适配器,客户端通过getName方法获取用户名字,但是实现类server没有提供该方法,却提供了getUserName方法</p>
 * <p>通过适配器将getUserName方法的数据返回给client</p>
 */
public class Adapter extends Server implements IClient {
    public String getName(int id) {
        return getUserName(id);
    }
}

测试类:

package com.whereta.adapter;

/**
 * Vincent 创建于 2016/4/21.
 */
public class Main {
    public static void main(String[] args) {
        IClient client=new Adapter();
        String name = client.getName(234);
        System.out.println(name);
    }
}

输出结果:

Connected to the target VM, address: '127.0.0.1:51729', transport: 'socket'
Name:234
Disconnected from the target VM, address: '127.0.0.1:51729', transport: 'socket'

Process finished with exit code 0

个人博客:http://www.whereta.com

你可能感兴趣的:(适配器模式)