不灬赖

自律>>自由>>自信

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

结构图:

1.对象适配器

 

2.类适配器

对象适配器实现

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本身。

 

 

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

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

posted on 2020-03-24 10:20  不灬赖  阅读(144)  评论(0编辑  收藏  举报