适配器模式

定义:将一个接口转换成客户期望的另一个接口,让不兼容的类可以合作无间

有过做接口工作经验的朋友,应该会很熟悉这种方式,就是开发一个新接口封装现有的能力提供给别人,只是自己不知道是适配器模式而已

180657_ZZRt_3049601.png

适配对象封装被适配对象和其行为(组合),类似装饰者模式和命名模式,但装饰者模式是同样的接口,封装后新增责任,命令模式是利用这种方式封装出命令对象,将对象参数化调用者,让调用者和执行者解耦。看到这里是不是有点头晕。。。那就看看我前面的博文吧“命令模式”“装饰者模式

要点:
1.当需要实用一个现有的类,而其接口并不符合你的需求时,采用适配器模式。

2.适配器改变接口以符合客户的期望

3.实现一个适配器可能需要一番功夫,也可能不费功夫,是目标接口的大小与复杂度而定。

4.适配器有两种模式,类适配器和对象适配器,对象适配器更具弹性

 

实现:

早期Java 集合类有Enumeration进行迭代,后来经过更新有了Iterator,现在新代码要求以前的迭代方式不能再使用,而不修改原来的代码,所以提供适配器EnumerationIterator

package com.jv.designpattern.adapter;

import java.util.Enumeration;
import java.util.Iterator;

public class EnumeratorIterator implements Iterator<Object> {
	Enumeration en ;
	
	public EnumeratorIterator(Enumeration en) {
		this.en = en;
	}

	@Override
	public boolean hasNext() {
		return en.hasMoreElements();
	}

	@Override
	public Object next() {
		return en.nextElement();
	}
	
	public void remove() {
		throw new UnsupportedOperationException();
	}

}

 

截止目前涉及到的模式都摆脱不了这些涉及原则:

1.封装变化

2.多用组合,少用继承

3.针对接口编程,不针对实现编程

4.为交互对象之间的松耦合而努力

5.类应该对扩展开放,对修改关闭

6.依赖抽象,不要依赖具体类

7.只是最小化原则,意思就是让对象依赖更少的对象

转载于:https://my.oschina.net/u/3049601/blog/1575837

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值