您的位置:首页 > 其它

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

2011-08-27 15:26 274 查看
概述:

适配器模式(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中 数据相匹配)来提供这一适配器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: