Patterns in SOME –Adapter (class)

Code in C#:
 
namespace Adapter_DesignPattern
{
     using System;
 
     class FrameworkXTarget
     {
         virtual public void SomeRequest(int x)
         {
              // normal implementation of SomeRequest goes here                    
         }
     }
 
     class FrameworkYAdaptee
     {
         public void QuiteADifferentRequest(string str)
         {
              Console.WriteLine("QuiteADifferentRequest = {0}", str);
         }       
     }
 
     class OurAdapter : FrameworkXTarget
     {
         private FrameworkYAdaptee adaptee = new FrameworkYAdaptee();
         override public void SomeRequest(int a)
         {
              string b;
              b = a.ToString();
              adaptee.QuiteADifferentRequest(b);
         }       
     }
 
     ///<summary>
     ///    Summary description for Client.
     ///</summary>
     public class Client
     {
         void GenericClientCode(FrameworkXTarget x)
         {
              // We assume this function contains client-side code that only
              // knows about FrameworkXTarget.
              x.SomeRequest(4);
              // other calls to FrameworkX go here
              // ...
         }
        
         public static int Main(string[] args)
         {
              Client c = new Client();
              FrameworkXTarget x = new OurAdapter();
              c.GenericClientCode(x);
              return 0;
         }
     }
}
Code in SOME:
  
CFrameworkXTarget
       v_SomeRequest(int)
 
CFrameworkYAdaptee
       QuiteADifferentRequest(string)
 
COurAdapter : CFrameworkXTarget,->CFrameworkYAdaptee[_adaptee.()]
       o_SomeRequest(int)
 
CClient
       GenericClientCode(CFrameworkXTarget)
       main
 
 
CClient.main
{
       CClient c.();
       CFrameworkXTarget x<COurAdapter>.();
       c.GenericClientCode(x)
       {
              x.SomeRequest<COurAdapter>(a[4])                               //4 is not index of array,it is just a real object that would be passed by parameter a
              {
                            <%
                            string b;
                            b = a.ToString();
                            %>
                            _adaptee.QuiteADifferentRequest(b);
              };
       };   
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值