Python 官方文档:入门教程 => 点击学习
目录定义结构图使用场景代码实现Java代码实现python代码实现定义 适配器将一个类的接口,转换成客户期望另一个接口。适配器让原本不兼容的类可以合作无间 结构图 如图所示,两脚插
适配器将一个类的接口,转换成客户期望另一个接口。适配器让原本不兼容的类可以合作无间
如图所示,两脚插头如何能插入三脚插座,可以在中间加一个适配器进行转换,就能实现两脚插头能插入三脚插座。
适配器模式有:对象适配器和类适配器
java没有多继承,只能实现对象适配器
先创建两个接口
// 适配目标接口
public interface Target{
public void aaa();
}
// 适配者接口
public interface Adaptee{
public void bbb();
}
实现这两个接口
public class Targetimpl implements Target{
public void aaa(){
System.out.printnln("Target")
}
}
public class Adapteeimpl implements Adaptee{
public void bbb(){
System.out.printnln("Adaptee")
}
}
制作适配器
需要实现要适配成什么接口,需要实现什么接口
public class Adapter implements Target{
Adaptee adaptee;
public Adapter(Adaptee adapter){
this.adaptee = adaptee;
}
public void aaa(){
adaptee.bbb()
}
}
public class Run{
public static void main(String[] args){
Adaptee adaptee = new Adatee();
Target target = new Targetimpl();
Target adapter = new Adapter(target);
adaptee.aaa();
target.bbb();
adapter.aaa();
}
}
运行结果:
Target
Adaptee
Adaptee
Python可以实现对象适配器和类适配器
这是对象适配器
# 适配目标
class Target(object):
def aaa(self):
print("Target")
# 被适配者
class Adaptee(object):
def bbb(self):
print("Adaptee")
# 这是适配器
class Adapter(Target):
def __init__(self, Adaptee):
self.Adaptee = Adaptee
def aaa(self):
self.Adaptee.bbb()
target = Target()
adaptee = Adaptee()
adapter = Adapter(adaptee)
target.aaa()
adaptee.bbb()
adapter.aaa()
运行结果:
Target
Adaptee
Adaptee
这是类适配器
class Target(object):
def aaa(self):
print("Target")
class Adaptee(object):
def bbb(self):
print("Adaptee")
class Adapter(Target, Adaptee):
def aaa(self):
self.bbb()
target = Target()
adaptee = Adaptee()
adapter = Adapter()
target.aaa()
adaptee.bbb()
adapter.aaa()
运行结果:
Target
Adaptee
Adaptee
到此这篇关于Java 设计模式之适配器模式详解的文章就介绍到这了,更多相关Java 设计模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Java 设计模式之适配器模式详解
本文链接: https://www.lsjlt.com/news/156726.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0