首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
物联网/工业互联网
›
物联网
›
计划模式-适配器模式
返回列表
发新帖
计划模式-适配器模式
[复制链接]
发表于 2025-11-2 01:06:07
|
显示全部楼层
|
阅读模式
一、界说
适配器模式可以将一个类的接口转换成客户盼望的另一个接口,适配器让本来不兼容的类可以互助无间。
举一个生存中常见的例子,比如手机上的TypeC接口转3.5mm的二级插口的转换器,就是一个适配器,让差别的物理接口可以正常互助。
在现实的开辟中,我们大概碰到体系中盼望的接口和第三方提供的接口不划一,这时就可以通过适配器来转化,而不必要更改体系中已有的
代码
和第三方的
代码
,就像下图如许:
一、界说
适配器模式可以将一个类的接口转换成客户盼望的另一个接口,适配器让本来不兼容的类可以互助无间。
举一个生存中常见的例子,比如手机上的TypeC接口转3.5mm的二级插口的转换器,就是一个适配器,让差别的物理接口可以正常互助。
在现实的开辟中,我们大概碰到体系中盼望的接口和第三方提供的接口不划一,这时就可以通过适配器来转化,而不必要更改体系中已有的
代码
和第三方的代码,就像下图如许:
二、实现
下面通过一个简单的例子来实现适配器模式,有一个鸭子接口、一个火鸡接口,现在鸭子的实现类不投用了,我们想用火鸡来假冒鸭子,就可以通过一个适配器来实现
鸭子接口中的叫是quack方法:
public interface Duck {
/**
* 叫
*/
void quack();
}
//一个实现类
public class GaDuck implements Duck{
/**
* 叫
*/
@Override
public void quack() {
System.out.println("嘎嘎叫");
}
}
复制代码
火鸡接口中的叫是gobble方法:
public interface Turkey {
void gobble();
}
//一个实现类
public class GeTurkey implements Turkey{
@Override
public void gobble() {
System.out.println("咯咯叫");
}
}
复制代码
要让火鸡来假冒鸭子,适配器必要实现鸭子接口方法,然后在鸭子独有的方法中调用火鸡独有的方法
public class TurkeyAdapter implements Duck{
private Turkey turkey;
public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}
@Override
public void quack() {
this.turkey.gobble();
}
}
复制代码
测试:
public class Test {
public static void main(String[] args) {
test();
}
static void test(){
Duck gaDuck = new GaDuck();
Turkey geTurkey = new GeTurkey();
Duck turkeyAdapter = new TurkeyAdapter(geTurkey);
System.out.println("嘎嘎鸭叫:");
testDuck(gaDuck);
System.out.println("伪装成鸭子的火鸡叫:");
testDuck(turkeyAdapter);
}
//测试鸭子
static void testDuck(Duck duck){
duck.quack();
}
}
//输出
嘎嘎鸭叫:
嘎嘎叫
伪装成鸭子的火鸡叫:
咯咯叫
复制代码
可以看到,详细的流程是如许的:
客户端testDuck(Duck duck)方法调用适配器中Duck接口的方法
适配器吸收到哀求,将会调用被适配者Turkey的方法
客户端收到了调用结果,但是并未察觉到适配器的作用
二、实现
下面通过一个简单的例子来实现适配器模式,有一个鸭子接口、一个火鸡接口,现在鸭子的实现类不投用了,我们想用火鸡来假冒鸭子,就可以通过一个适配器来实现
鸭子接口中的叫是quack方法:
public interface Duck {
/**
* 叫
*/
void quack();
}
//一个实现类
public class GaDuck implements Duck{
/**
* 叫
*/
@Override
public void quack() {
System.out.println("嘎嘎叫");
}
}
复制代码
火鸡接口中的叫是gobble方法:
public interface Turkey {
void gobble();
}
//一个实现类
public class GeTurkey implements Turkey{
@Override
public void gobble() {
System.out.println("咯咯叫");
}
}
复制代码
要让火鸡来假冒鸭子,适配器必要实现鸭子接口方法,然后在鸭子独有的方法中调用火鸡独有的方法
public class TurkeyAdapter implements Duck{
private Turkey turkey;
public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}
@Override
public void quack() {
this.turkey.gobble();
}
}
复制代码
测试:
public class Test {
public static void main(String[] args) {
test();
}
static void test(){
Duck gaDuck = new GaDuck();
Turkey geTurkey = new GeTurkey();
Duck turkeyAdapter = new TurkeyAdapter(geTurkey);
System.out.println("嘎嘎鸭叫:");
testDuck(gaDuck);
System.out.println("伪装成鸭子的火鸡叫:");
testDuck(turkeyAdapter);
}
//测试鸭子
static void testDuck(Duck duck){
duck.quack();
}
}
//输出
嘎嘎鸭叫:
嘎嘎叫
伪装成鸭子的火鸡叫:
咯咯叫
复制代码
可以看到,详细的流程是如许的:
客户端testDuck(Duck duck)方法调用适配器中Duck接口的方法
适配器吸收到哀求,将会调用被适配者Turkey的方法
客户端收到了调用结果,但是并未察觉到适配器的作用
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
惊落一身雪
+ 我要发帖
×
登录参与点评抽奖,加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表