适配器模式(Adapter Pattern)【结构型】

意图:将类的接口转换成客户希望的另一个接口。

结构图:

1.对象适配器

8B+eEdu+qLUVMAAAAASUVORK5CYII=uploading.4e448015.gif转存失败重新上传取消

2.类适配器

iF35WhOZM+cAAAAASUVORK5CYII=uploading.4e448015.gif转存失败重新上传取消

对象适配器实现

public class Target{

public virtual void Request(){

..... 

}

 

public class Adaptee{

public virtual void SpecificRequest(){

.... 

}

 

public AdapteeToTarget:Target{

private Adaptee adaptee = new Adaptee();

public override void Request(){

 adaptee.SpecificRequest();

}

 

public Class Client{

statics void Main(){

Target target = new AdapteeToTarget();

target. Request();

}

优点:不修改原来代码,复用现有类。

缺点:采用了“多继承”的实现方式,带来了不良的高耦合。 

 

类适配器实现:

public interface ITarget{

void Request(); 

}

 

public abstract class Adaptee{

public  void SpecificRequest(){

.... 

}

public class AdapteeToTarget:Adaptee,ITarget{

public void Request(){

this.SpecificRequest(); 

}

}

优点:采用“对象组合”的方式,更符合低耦合。

缺点:需要引用Adaptee子类,而不是Adaptee本身。

 

 

使用场景:系统需要复用现有的类,而该类的接口不符合系统需求。

                 想要建立一个可重复使用的类,用于一些彼此之间没有太大关联的类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值