适配器模式(Adapter Pattern)

小明的水果店远近闻名,招来了很多外国朋友,但是小明有不会英文,没办法跟他们沟通,所以小明请了一个翻译既懂英文又懂中文的小翻译。这个翻译通过把英文转换成中文跟小明对话。一般来说这个翻译我们称之为适配器

 

适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作

适配器模式的结构

Target(目标抽象类):目标抽象类定义客户端所需的接口可以是一个具体类,也可以是一个接口

public interface Target
{
    void Request();
}

Adapter(适配器类):这个类的主要功能就是实现target的接口并且继承Adaptee类,使二者产生关联,adapter类是适配器的核心

public class Adapter : Target
{
    public Adaptee adaptee;
    public Adapter(Adaptee adaptee)
    {
        this.adaptee = adaptee;
    }
    public void Request()
    {
        adaptee.SpecificRequest();
    }

}

Adaptee(适配者类):适配者是被适配的角色

public class Adaptee
{
    public void SpecificRequest()
    {
        Console.WriteLine("1");
    }

}

实现

Adaptee adaptee = new Adaptee();
Target target = new Adapter(adaptee);
target.Request();

适配器模式的优点:

1.将目标类和适配者类解耦

2.增加了类的透明性和复用性,提高了适配者的复用性

3.可以通过配置文件更换适配器,增加了灵活性和扩展性

适配器模式的缺点:

1.对于不能多重继承的语言来说,一次最多只能适配一个适配者

2.适配者类不能成为最终类,不能用sealed标志

3.一般来说目标抽象类只能是接口,因为不能继承多个类,使之有些局限性

适配器的适用环境:

1.系统需要使用一些现有的类,而这些接口不符合系统内的要求,需要转换一下才可以使用

2.适配器模式将一个类的接口转换成客户希望的另一个接口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值