设计模式之适配器模式
2012-11-28 17:11
375 查看
适配器模式就是将一个类的接口转换成客户希望的另一个类的接口,使得两个原本由于接口不兼容而不能一起工作的那些类一起工作。它的核心就是将两个没有关系的类组合在一起使用,只要传递了某个类的对象,我们就可以在适配器中调用这个类的方法。有类的适配模式和对象的适配模式之分。
这种模式有三个角色:
目标角色(Target),即所期待得到的接口;
源角色(Adaptee),即已有的需要适配的类(或接口);
适配器角色(Adapter),该类是本模式的核心。适配器把源接口转换成目标接口,显然这一角色不可以是接口,必须是具体类。
下面是该模式的示例性代码:
Using System;
Namespace ClassAdapter
{
// 目标接口
Public Interface Target
{
void Method1(); //源类也有的方法
void Method2(); //源类没有,用户却期待的方法
}
// 需要被适配的源类
Public class Adaptee
{
Public void Method1()
{
Console.WriteLine(“调用Method1方法”);
}
}
// 适配器类
Public class Adapter:Adaptee,Target
{
// Method1()方法以及从Adaptee继承,不需要再实现
// 适配器补充实现Method2方法
Public void Method1()
{
Console.WriteLine(“调用Method2方法”);
}
}
// 客户端代码
Class ClassAdapter
{
Private static Target target;
Static void Main(string[] args)
{
target=new Adapter();
target.Method1();
target.Method2();
}
}
}
这种模式有三个角色:
目标角色(Target),即所期待得到的接口;
源角色(Adaptee),即已有的需要适配的类(或接口);
适配器角色(Adapter),该类是本模式的核心。适配器把源接口转换成目标接口,显然这一角色不可以是接口,必须是具体类。
下面是该模式的示例性代码:
Using System;
Namespace ClassAdapter
{
// 目标接口
Public Interface Target
{
void Method1(); //源类也有的方法
void Method2(); //源类没有,用户却期待的方法
}
// 需要被适配的源类
Public class Adaptee
{
Public void Method1()
{
Console.WriteLine(“调用Method1方法”);
}
}
// 适配器类
Public class Adapter:Adaptee,Target
{
// Method1()方法以及从Adaptee继承,不需要再实现
// 适配器补充实现Method2方法
Public void Method1()
{
Console.WriteLine(“调用Method2方法”);
}
}
// 客户端代码
Class ClassAdapter
{
Private static Target target;
Static void Main(string[] args)
{
target=new Adapter();
target.Method1();
target.Method2();
}
}
}
相关文章推荐
- 【设计模式】之 Adapter 适配器模式
- 我看懂的设计模式 、Adapter,适配器模式
- 设计模式篇-----工厂设计模式,单例设计模式,适配器模式
- Java设计模式之适配器模式(Adapter)
- head first 设计模式学习随笔(7)----适配器模式和外观模式
- C++设计模式之适配器模式
- 设计模式--适配器模式(简要)(四)
- 设计模式 适配器模式
- java设计模式之-----适配器模式
- Android设计模式--适配器模式--Adapter入门
- 设计模式利剑13-适配器模式
- java设计模式——适配器模式
- 适配器模式 - 设计模式学习
- 设计模式-适配器模式
- 23种设计模式之适配器模式(Adapter)
- 【设计模式】适配器模式
- 设计模式之适配器模式
- 设计模式 适配器模式 以手机充电器为例