网站的总体风格包括,深圳网站建设制作优化,手机app开发技术,山西做网站运营的公司四个角色#xff1a;目标抽象类角色(Target)、目标对象角色(Adapter)、源对象角色(Adaptee)、客户端角色(Client) 目标抽象类角色#xff08;Target)#xff1a;定义需要实现的目标接口 目标对象角色#xff08;Adapter)#xff1a;调用另外一个源对象#xff0c;并且转换… 四个角色目标抽象类角色(Target)、目标对象角色(Adapter)、源对象角色(Adaptee)、客户端角色(Client) 目标抽象类角色Target)定义需要实现的目标接口 目标对象角色Adapter)调用另外一个源对象并且转换(适配)为需要的目标对象。 源对象角色Adaptee)因为提供的功能不能满足现状需要转换的源对象。 客户端角色Client调用目标对象对源对象进行加工。 实现思路首先取得需要转换的源对象然后通过Adapter对源对象进行加工得到目标对象。 类图 应用场景在第三方类库中有一个源对象可以实现判断用户是否属于成人、是几个字的名字但是需要的功能是显示用户信息且不能更改第三方类库。 分析现在的系统中需要的是显示用户信息的功能在这里我们通过适配器模式调用第三方的对象在目标对象中显示用户信息处理并提供接口给客户端。 下面我们在控制台程序去演示一下如何使用Adapter Pattern 一、目标抽象类角色Target) //Target(目标抽象类角色) interface ITarget
{void ShowInfo();
} 二、目标对象角色Adapter) //Adapter(目标对象角色) public class TargetInfoAdapter:ITarget
{
SourceInfo sinfo;public TargetInfoAdapter(SourceInfo sourceinfo)
{this.sinfo sourceinfo;
}public void ShowInfo()
{
Console.WriteLine(sinfo.Name : sinfo.Age 岁 sinfo.IsAdult() sinfo.NumberOfName());
}
} 三、源对象角色Adaptee) //Adaptee(源对象角色) public class SourceInfo
{public string Name { get; set; }public int Age { get; set; }public string IsAdult()
{return Age 17 ? 成年 : 未成年;
}public string NumberOfName()
{return Name.Length.ToString() 个字名;
}
} 四、客户端角色Client //Client(客户端角色) class Program
{static void Main(string[] args)
{//取得源对象 SourceInfo sinfo new SourceInfo() { Name小明,Age15 };//通过适配器转化源对象为目标对象。 ITarget target new TargetInfoAdapter(sinfo);
target.ShowInfo();
Console.ReadLine();
}
} 如需源码请点击 AdapterPattern.rar 下载。 本文转自程兴亮博客园博客原文链接http://www.cnblogs.com/chengxingliang/archive/2011/09/15/2173195.html如需转载请自行联系原作者