亲宝软件园·资讯

展开

Java 设计模式 Java 设计模式之适配器模式详解

不侠居 人气:1
想了解Java 设计模式之适配器模式详解的相关内容吗,不侠居在本文为您仔细讲解Java 设计模式的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java,设计模式,Java,适配器模式,下面大家一起来学习吧。

定义

适配器将一个类的接口,转换成客户期望另一个接口。适配器让原本不兼容的类可以合作无间

结构图

在这里插入图片描述

如图所示,两脚插头如何能插入三脚插座,可以在中间加一个适配器进行转换,就能实现两脚插头能插入三脚插座。

使用场景

代码实现

适配器模式有:对象适配器和类适配器

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 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

加载全部内容

相关教程
猜你喜欢
用户评论