Adapter模式的好处
生活随笔
收集整理的這篇文章主要介紹了
Adapter模式的好处
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當調用方使用“管理類”的慣常手法時,要寫出類似如下的調用代碼:
IDBMemberNameCardManager?ncMgr?=?MemberFacade.GetInstance().CreateDBMemberNameCardManager();
IMemberNameCard?nc?=?ncMgr.ReadMemberNameCard(currentMember.Id);
//將名片中的公司名顯示在Label中
this.LabelCompany.Text?=?nc.Company;
這樣一來,調用方需要知道
1、領域信息接口 即上述表示名片信息的接口 IMemberNameCard 以及 currentMember(當前的用戶),即“領域(Domain)類”。
2、存取領域信息的方法接口,即上述 IDBMemberNameCardManager ,亦即所謂“管理(Manager)類”。
3、取得管理類的門面,即上述的MemberFacade,也即為類廠。
現在我們改用另外一種模式: IMemberNameCardAdapter?adapter?=?(IMemberNameCardAdapter)currentMember.GetAdapter(typeof(IMemberNameCardAdapter));
if(adatper?!=?null)
{
????IMemberNameCard?nc?=?adapter.ReadMemberNameCard();
?????this.LabelCompany.Text?=?nc.Company;
}
IDBMemberNameCardManager?ncMgr?=?MemberFacade.GetInstance().CreateDBMemberNameCardManager();
IMemberNameCard?nc?=?ncMgr.ReadMemberNameCard(currentMember.Id);
//將名片中的公司名顯示在Label中
this.LabelCompany.Text?=?nc.Company;
這樣一來,調用方需要知道
1、領域信息接口 即上述表示名片信息的接口 IMemberNameCard 以及 currentMember(當前的用戶),即“領域(Domain)類”。
2、存取領域信息的方法接口,即上述 IDBMemberNameCardManager ,亦即所謂“管理(Manager)類”。
3、取得管理類的門面,即上述的MemberFacade,也即為類廠。
現在我們改用另外一種模式: IMemberNameCardAdapter?adapter?=?(IMemberNameCardAdapter)currentMember.GetAdapter(typeof(IMemberNameCardAdapter));
if(adatper?!=?null)
{
????IMemberNameCard?nc?=?adapter.ReadMemberNameCard();
?????this.LabelCompany.Text?=?nc.Company;
}
????? 使用這種方式的話,調用方需要知道的東西少了“門面”,只需要知道領域信息和存取接口。是不是看起來更加簡潔???
?這個模式在 Eclipse 中運用得很多,可以在領域類上添加許多不同的適配器,而不需要讓領域類直接實現新的接口,從而避免了“接口腫脹”。
讓客戶知道得越少越好,我想這就是這個模式的精髓所在了。
注:這個模式的支持需要某些環境支持,我之前也上傳過一個關于適配器模式的C#項目,模擬了這種支持。
轉載于:https://www.cnblogs.com/xiaotaoliang/archive/2005/08/13/214235.html
總結
以上是生活随笔為你收集整理的Adapter模式的好处的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 很专业的Flash游戏
- 下一篇: MICROSOFT SQL SERVER