浅谈设计模式——适配器模式

在工作的时候,有时候我们并不知道系统提供的对外接口会被那些系统使用。如果这个对外接口只被一个外部系统使用,问题不大,可能要提供的方法还不是很多;如果这个外部接口要被很多的外部系统使用,问题就来了,如果返回的类型不同,势必我要写比较过的方法来实现,这样便加大了代码的冗余度。有没有一种方法可以解决这个问题呢,这是我们今天要讲的设配器模式。当客户需要什么类型是,就只需要对接口的方法进行包装,从而实现自己所需要的类型。

定义:适配器模式就是将一个系统的接口转换成另一种形式,从而使原来不能直接电泳的接口变得可以调用。

组成:适配器模式主要由3部分组成:目标类、源类和适配器类

示意代码如下:

//目标类的示意代码如下
public interface Target {
	void operation1();
	void operation2();
}


 

//源类的示意代码如下
public class Adaptee {
	
	public void operation1(){
			
	}
	
	public void operation2(){
		
	}
}


 

//适配器类的示意代码如下
public class Adapter implements Target{
	private Adaptee lnkAdaptee;
	public Adapter(Adaptee lnkAdaptee){
		this.lnkAdaptee = lnkAdaptee;
	}
	
	public void operation1(){
		
	}

	public void operation2() {

	}
}

 

适配器模式分为对象适配器和类适配器,前面的代码讲的是对象适配器,即实现目标类的接口,依赖适配者类;而对于类适配器来说,要直接继承适配者类,并实现目标类的接口。
使用时机:当系统需要使用一个外部接口,而这个外部接口不符合系统需要的时候,就需要使用适配器类。

优点:使用适配器模式,可以将一个系统的接口和本来不相容的另一个系统的类联系起来,从而使得这两个类能够在一起工作,强调了对接口的转换。

缺点:对于适配器来说,不能适配一个类以及它的子类;对于对象适配器来说,重新定义被适配的类的行为比较困难。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值