适配器模式 - Adapter

本文介绍了适配器模式(Adapter),一种用于将一个类的接口转换为另一个接口的设计模式,使得原本因接口不兼容而无法协作的类能够一起工作。特别讨论了在软件开发中如何利用适配器模式来复用现有类,同时解决了接口不匹配的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式主要解决什么问题呢? 简单地说,就是需要的东西就在面前,但却不能使用,而短时间又无法改造它,于是就想办法适配它。
在软件开发中,也就是系统的数据和行为都正确,但接口不符时,我们就考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现在的类,但是接口又与复用环境要求不一致的情况。

类适配器模式与对象适配器模式,由于类适配器模式通过多重继承对一个接口与另一个接口进行匹配,而C#,vb.net,java等都不支持多重继承,(C++支持),也就是一个类只有一个父类,所以这里主要讲对象适配器。

适配器结构图

Target(这是客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口)
class Target
{
 public virtual void Request()
 {
  Console.WriteLine("普通请求");
 }
}

Adaptee(需要适配的类)
class Adaptee
{
 public void SpecificRequest()
 {
  Console.WriteLine("特殊请求");
 }
}

Adapter 通过在内部包装一个Adaptee对象,把源接口转换成目标接口
class Adapter : Target
{
 private Adaptee adaptee = new Adaptee();
 
 public override void Request()
 {
  adaptee.SpecificRequest();
 }
}

---客户端代码---
static void Main(string[] args)
{
 Target target = new Adapter();
 target.Request();

 Console.Read();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值