适配器模式(Adapter)(对象结构型模式)

参考文档:

1.设计模式-可复用面向对象软件的基础

2.http://blog.csdn.net/guolin_blog/article/details/9400141(Java设计模式透析之 —— 适配器(Adapter))


适配器模式(Adapter)(对象结构型模式)

理论方面的知识,请查看参考文档的内容。

看一下adapter的结构:

类适配器,在java中的实现,表现为实现多个接口类,进行匹配:


对象适配器,在java中的实现,表现为对象组合:



代码实现,案例是参考文档2中的,实现的方式是:对象适配器,实现adapter的类:ServerOne.java。

PlayerCount.java:
package com.rick.designpattern.adapter;

/**
 * Created by MyPC on 2017/6/29.
 */
public interface PlayerCount {

    String getServerName();

    int getPlayerCount();

}
ServerOne.java:
package com.rick.designpattern.adapter;

/**
 * Created by MyPC on 2017/6/29.
 */
public class ServerOne implements PlayerCount {
    @Override
    public String getServerName() {
        return "1服";
    }

    @Override
    public int getPlayerCount() {
        return new ServerFirst().getOnlinePlayerCount();
    }
}
ServerTwo.java:
package com.rick.designpattern.adapter;

/**
 * Created by MyPC on 2017/6/29.
 */
public class ServerTwo implements PlayerCount {
    @Override
    public String getServerName() {
        return "2服";
    }

    @Override
    public int getPlayerCount() {
        return Utility.getOnlinePlayerCount(2);
    }
}
ServerThree.java:
package com.rick.designpattern.adapter;

/**
 * Created by MyPC on 2017/6/29.
 */
public class ServerThree implements PlayerCount {
    @Override
    public String getServerName() {
        return "3服";
    }

    @Override
    public int getPlayerCount() {
        return Utility.getOnlinePlayerCount(3);
    }
}
Utility.java:
package com.rick.designpattern.adapter;

/**
 * Created by MyPC on 2017/6/29.
 */
public class Utility {
    public static int getOnlinePlayerCount(int i) {
        return (int) (Math.random() * 100);
    }
}
ServerFirst.java:
package com.rick.designpattern.adapter;

/**
 * Created by MyPC on 2017/6/29.
 */
public class ServerFirst {
    public int getOnlinePlayerCount() {
        return (int) (Math.random() * 100);
    }
}
Client.java:
package com.rick.designpattern.adapter;

/**
 * Created by MyPC on 2017/6/29.
 */
public class Client {


    public static void main(String[] args) {
        ServerOne one = new ServerOne();
        System.out.println(one.getServerName() + "=" + one.getPlayerCount());
        ServerTwo two = new ServerTwo();
        System.out.println(two.getServerName() + "=" + two.getPlayerCount());
        ServerThree three = new ServerThree();
        System.out.println(three.getServerName() + "=" + three.getPlayerCount());
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值