开发者社区> 技术小阿哥> 正文

Java与模式:适配器模式

简介:
+关注继续查看
目的:
将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
 
意图:
你想使用一个已经存在的类,而它的接口不符合你的需求。 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。 (仅适用于对象A d a p t e r )你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
 
(目的和意图是不变的,摘自《设计模式迷你手册》电子版)
 
下面是一个Java版的示例
 
一、原理图:
 
二、示例代码
/** 
* Created by IntelliJ IDEA. 
* User: leizhimin 
* Date: 2008-8-2 14:43:46 
* 源角色 
*/
 
public class Adaptee { 
    public int get220v(){ 
       return 220; 
    } 
}
 
/** 
* Created by IntelliJ IDEA. 
* User: leizhimin 
* Date: 2008-8-2 14:43:23 
* 目标角色 
*/
 
public interface Target { 
    int get110v(); 
    int get220v(); 
}
 
/** 
* Created by IntelliJ IDEA. 
* User: leizhimin 
* Date: 2008-8-2 14:43:07 
* 适配器角色:扩展源角色,实现目标角色,从而使得目标角色改动时候,不用改动源角色,只要改动适配器 
*/
 
public class Adapter extends Adaptee implements Target{ 
    public int get110v(){ 
        return 110; 
    } 
}
 
/** 
* Created by IntelliJ IDEA. 
* User: leizhimin 
* Date: 2008-8-2 15:00:31 
* 客户端 
*/
 
public class Client { 
    public static void main(String rags[]) { 
        new Client().test(); 
    } 

    public void test() { 
        Target target = new Adapter(); 
        int v1 = target.get110v(); 
        int v2 = target.get220v(); 
    } 
}
 
适配器通过扩展源角色,同时实现目标接口,从而满足了同时提供220v,110v电压的要求。
 
 本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/90767,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23572 0
重学 Java 设计模式:实战适配器模式
框架中不仅用到设计模式还用了很多,而且有些时候根本不是一个模式的单独使用,而是多种设计模式的综合运用。与大部分小伙伴平时开发的CRUD可就不一样了,如果都是if语句从上到下,也就算得不上什么框架了。就像你到Spring的源码中搜关键字Adapter,就会出现很多实现类,例如;UserCredentialsDataSourceAdapter。而这种设计模式就是我们本文要介绍的适配器模式。
41 0
java适配器模式
java适配器模式
9630 0
Java结构型模式(1)适配器模式
《2019年阿里云双11活动拼团》:https://www.aliyun.com/1111/2019/group-buying-share【限时】1年86元,3年229元,用来建站和编程学习【附WordPress建站教程】 适配器模式属于结构型模式的一种,它可以理解为现实生活中的电源适配器、网络适配器等。
720 0
适配器在JavaScript中的体现
适配器设计模式在JavaScript中非常有用,在处理跨浏览器兼容问题、整合多个第三方SDK的调用,都可以看到它的身影。 其实在日常开发中,很多时候会不经意间写出符合某种设计模式的代码,毕竟设计模式就是老前辈们总结提炼出来的一些能够帮助提升开发效率的一些模版,源于日常的开发中。
1000 0
java+适配器模式 实现自己的迭代器...
package me; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.
697 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14260 0
13689
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载