您现在的位置: 北大青鸟(福州时代)授权培训中心 >> 学习园地 >> 学术研讨 >> 文章正文
  [推荐]设计模式c#语言描述——适配器(Adapter)模式         ★★★ 【字体:
设计模式c#语言描述——适配器(Adapter)模式
作者:admin    文章来源:本站原创    点击数:    更新时间:2007-8-18    
设计模式c#语言描述——适配器(Adapter)模式office:office" />
 
*本文参考了《JAVA与模式》的部分内容,适合于设计模式的初学者。
 
   适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。包括类的适配器模式和对象的适配器模式两种不同的形式。
  
   类的适配器模式把被适配的类的API转换成为目标类的API,其静态结构图如下:
 
 
模式的角色如下:
目标(Target)角色:这就是所期待得到的接口。注意这里讨论的是类的适配器模式,因此目标不可以是类。
源(Adaptee)角色:现有需要适配的接口。
适配器(Adapter)角色:把源接口转换成目标接口。
 
Target;
public interface Target
{
 
      void sampleOperation1();
 
      void sampleOperation2();//源类不包含的方法
 
}// END INTERFACE DEFINITION Target
 
Adaptee;
public class Adaptee
{
 
     public void sampleOperation1()
     {
        
     }
 
}// END CLASS DEFINITION Adaptee
 
Adapter;
public class Adapter   : Adaptee,Target
{
 
     public void sampleOperation2()
     {
     }
 
}// END CLASS DEFINITION Adapter
 
类的适配器模式的效果:
使用一个具体类把源适配到目标中,这样一来,如果源以及源的子类都使用此类适配,就形不通了。
由于适配器类是源的子类,因此可以在适配器类中置换掉(Override)源的一些方法。
 
与类的适配器模式相似,对象的适配器模式把被适配的类的API转换成目标类的API,与类的适配器模式不同,对象的适配器模式不是使用继承关系连接到Adaptee类,而是使用委派关系,类图如下所示:
 
 
 
Target;
public interface Target
{
 
      void sampleOperation1();
 
      void sampleOperation2();
 
}// END INTERFACE DEFINITION Target
 
Adaptee;
public class Adaptee
{
 
     public void sampleOperation1()
     {
        
     }
 
}// END CLASS DEFINITION Adaptee
 
Adapter:
public class Adapter   : Target
{
 
     private Adaptee adaptee;
 
     public void Adapter(Adaptee adaptee)
     {
         this.adaptee=adaptee;
     }
 
     public void sampleOperation1()
     {
         adaptee.sampleOperation1();
     }
 
     public void sampleOperation2()
     {
        
     }
 
}// END CLASS DEFINITION Adapter
 
对象适配器模式的效果:
一个适配器可以把多种不同的源适配到同一个目标。也就是说,同一个适配器可以把源类和它的子类都适配到目标接口。
与类的适配器相比,要想置换源类的方法就不容易。如果一定要置换源类的方法,就只好先做一个源类的子类,将方法置换掉,再把源类的子类当作真正的源进行适配。
 
文章录入:admin    责任编辑:admin 
  • 上一个文章:

  • 下一个文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
                    版权所有  北大青鸟APTECH (福州时代)授权培训中心
                    地址:福州津泰路268号新大都时尚广场三层(肯德基旁)
                    网址:http://www.fzaccp.com.cn
                    电话:0591-87603191 87603192 400-811-8090(省内可免费拨打)
                    邮箱:fzaccp@yahoo.com.cn
                    乘车路线:948路“仙塔街”站下
                    802、817、818、22、971路“旗汛口”站下。
                    19、26、51、52、702、802、949、971路"蒙古营"站下
                    邮编:350001
    闽ICP备08004336号
    站长:北大青鸟(福州时代)培训中心