多平台统一管理软件接口,如何实现多平台统一管理软件接口
310
2022-09-16
Java 设计模式之适配器模式详解
目录定义结构图使用场景代码实现java代码实现python代码实现
定义
适配器将一个类的接口,转换成客户期望另一个接口。适配器让原本不兼容的类可以合作无间
结构图
如图所示,两脚插头如何能插入三脚插座,可以在中间加一个适配器进行转换,就能实现两脚插头能插入三脚插座。
使用场景
新的代码兼容旧的代码
使用别人好的代码到自己的代码中
代码实现
适配器模式有:对象适配器和类适配器
Java代码实现
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代码实现
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 TvRFfwZLKarget(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()
adhttp://aptee =http:// Adaptee()
adapter = Adapter()
target.aaa()
adaptee.bbb()
adapter.aaa()
运行结果:
Target
Adaptee
Adaptee
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~