日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

极速理解设计模式系列:6.适配器模式(Adapter Pattern)

發布時間:2025/3/8 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 极速理解设计模式系列:6.适配器模式(Adapter Pattern) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

四個角色:目標抽象類角色(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="小明",Age=15 };
//通過適配器轉化源對象為目標對象。
ITarget target =new TargetInfoAdapter(sinfo);
target.ShowInfo();
Console.ReadLine();
}
}

??????? 如需源碼請點擊?AdapterPattern.rar?下載。


本文轉自程興亮博客園博客,原文鏈接:http://www.cnblogs.com/chengxingliang/archive/2011/09/15/2173195.html,如需轉載請自行聯系原作者


總結

以上是生活随笔為你收集整理的极速理解设计模式系列:6.适配器模式(Adapter Pattern)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。