`
不平凡的人
  • 浏览: 33073 次
  • 性别: Icon_minigender_1
  • 来自: 嘉峪关
社区版块
存档分类
最新评论

适配器模式

阅读更多

1、适配器模式分类

(1)对象适配器

(2)类适配器

 

2、对象适配器

(1)概念:将一个类的接口转为另外一个类的接口,让原来不兼容得类变得兼容

(2)原理:

         对象适配器采用组合的方式,适配器对象实现目标类的接口,重写目标类的方法。此时,适配器类中组合了一个被适配的对象,其实质在重写目标类的方法时调用被适配器类对象的方法



 

(3)优点:

①从用户的角度看不到被适配的对象,被适配的对象与目标对象时解耦的;

②用户调用的是适配器转换出来的目标类的方法;

③适配器调用的是被适配者的相关接口和方法;

 

(4)代码示例

package net.oschina.design.adapter.objadapter.adapter;

import net.oschina.design.adapter.objadapter.chicken.Chicken;
import net.oschina.design.adapter.objadapter.duck.Duck;

/**
 * 火鸡适配器,将火鸡转为目标的鸭子
 * 
 * @author Freedom
 * 
 */
public class ChickenAdapter implements Duck {

	// 对象适配器,通过组合的方式实现适配目的
	private final Chicken chicken;

	public ChickenAdapter(Chicken chicken) {
		this.chicken = chicken;
	}

	@Override
	public void ga() {
		chicken.gu();
	}

	@Override
	public void fly() {
		chicken.fly();
	}

}

 

3、类适配器

(1)概念:类适配器通过多重继承目标接口与被适配对象的接口方式实现适配;

(2)类图



 多重继承,继承目标接口部分达到适配的目的,而继承被适配者对象的部分达到通过调用被适配类中的部分功能实现目标接口的功能

 

(3)对象适配器与类适配器的差异:

         对象适配器采用组合方式实现功能而类适配器采用继承方式实现功能;

 

4、装饰者模式与适配器模式的区别:

(1)装饰者模式中,装饰者与被装饰者有着共同的超类,而适配器模式被适配者与目标接口,无需共用超类

(2)装饰者模式是将一个类的功能进行加强,而适配器模式是将一个类的接口(被适配者接口)转为目标接口。

 

 

  • 大小: 5.8 KB
  • 大小: 7.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics