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游戏
- 下一篇: 网页图片渐显渐隐