适配器模式

一、定义

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


二、例子

package com.fengshu.qdbuy;

/**
 * 对象适配器例子
 * 
 * @author fengshuzi
 *
 */
public class TurkeyAdapter implements Duck {
	Turkey turkey;

	public TurkeyAdapter(Turkey turkey) {
		this.turkey = turkey;
	}

	@Override
	public void quack() {
		turkey.gobble();
	}

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

	public static void main(String[] args) {
		Turkey turkey = new WildTurkey();
		Duck duck1 = new TurkeyAdapter(turkey);
		Duck duck2 = new TurkeyAdapter1();
		duck1.quack();
		duck2.quack();
	}
}

interface Duck {
	public void quack();

	public void fly();
}

class MallarDuck implements Duck {

	@Override
	public void quack() {
		System.out.println("quack");
	}

	@Override
	public void fly() {
		System.out.println("I am flying!");
	}

}

interface Turkey {
	public void gobble();// 火鸡不会呱呱叫只会咯咯叫

	public void fly();
}

class WildTurkey implements Turkey {

	@Override
	public void gobble() {
		System.out.println("gobble");
	}

	@Override
	public void fly() {
		System.out.println("I am flying!");
	}

}

/**
 * 类适配器
 * 
 * @author fengshuzi
 *
 */
class TurkeyAdapter1 extends WildTurkey implements Duck {

	@Override
	public void quack() {
		gobble();
	}

}



三、关键点

1、大多数的适配器模式都是让一个适配器去包装一个被适配者

2、使用对象组合,以修改的接口包装被适配者。

四、类图

转载于:https://my.oschina.net/fengshuzi/blog/367450

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值