设计模式学习笔记-适配器模式

概述:                                                                                                     

适配器模式(atapter)将一个类的接口转换成用户希望的另一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作。

应用场合:                                                                                               

1.你想使用一个已经存在的类,而它的接口不符合你的要求。

2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。

3.(仅适用于对象adapter),你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配他们的接口。对象适配器可以适配它的父类接口

类图:                                                                                                      

代码结构:                                                                                                  

1.目标接口

复制代码
    /// <summary>
/// 客户期待的目标接口
/// </summary>
class Target
{
public virtual void Request()
{
Console.WriteLine(
"普通请求");
}
}
复制代码

2.需要适配的类

复制代码
    /// <summary>
/// 需要适配的类
/// </summary>
class Adaptee
{
public void SpecificRequest()
{
Console.WriteLine(
"特殊请求");
}
}
复制代码

3.构造适配器

复制代码
    /// <summary>
/// 通过在内部包装一个Adapter对象,把源接口转换成目标接口
/// </summary>
class Adapter:Target
{
/// <summary>
/// 建立一个私有的Adapter对象
/// </summary>
private Adaptee adaptee = new Adaptee();

public override void Request()
{
//这样就可以把表面上调用Request()方法变成实际调用SpecificRequest()
adaptee.SpecificRequest();
}
}
复制代码

 4.调用示例

复制代码
        /// <summary>
/// 测试适配器模式
/// </summary>
static void TestAdapter()
{
Target target
= new Adapter();
target.Request();
Console.Read();
}
复制代码

  

小结:                                                                                                         

适配器模式是在重构无门的情况下出此下策,解决实际的问题最重要,.net类库里的DataAdapter对象就是用作DataSet和数据源之间的适配器以便检索和保存数据,DataAdapter通过映射Fill(这更改了DataSet中的数据以便于数据源中的数据相匹配)和Update(这更改了数据源中的数据以便于DataSet中 数据相匹配)来提供这一适配器。

posted @   叶鹏  阅读(771)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示