设计模式之适配器模式

旧街凉风 提交于 2019-12-04 17:01:50

定义

将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工 作。

UML类图

适配器分为两种,类适配器与对象适配器。

类适配器的UML图:

对象适配器的UML图:

角色

Target: 需要适配为的接口。 Adapter: 适配器类。 Adaptee: 被适配的类。

类适配器与对象适配器

类适配器代码如:

public class Adapter extends Adaptee implements Target {
		public void request() {
		super.doSomething();
		} 
}

继承了Adaptee被适配类已获取被适配类的所有属性和行为,并实现需要适配为的接口,在接口实现方法中添加适配逻辑。

对象适配器代码如:

public class Adapter implements Target {
		public Adaptee adaptee;
        public Adapter(Adaptee adaptee){
			this.adaptee = adaptee;
		}
		public void request() {
		this.adaptee.doSomething();
		}
}

其实就是将适配器与被适配的类的关系由继承变为了注入,也就是泛化关系变为了关联关系。

两者的区别是,对象适配器比类适配器更灵活,因为在JAVA中继承只能继承一个类,如果需要一个需要适配的接口的信息来源于多个类,那么这多个类原有的属性和行为就不能用继承的方式去获取,只能通过聚合。实际开发中,用对象适配器也比用类适配器的情况多。

应用场景

在产品迭代过程中,引入了新的资源,但又不匹配现有接口,可以使用适配器模式。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!