Adapter模式学习

using System;
using System.Collections;
namespace Adapter
{

 public interface IStack//客户希望的接口
 {
  void Pus(object item);
  object Pop();
  object Peek();
 }

 /// <summary>
 /// /////////////////////////对象适配器
 /// </summary>
 public class Adaptera:IStack//适配对象
 {
  ArrayList adaptee;//被适配对象
  public Adaptera()
  {
   list=new ArrayList();
  }
  void Pus(object item)
  {
   list.Add(item);
  }
  object Pop()
  {
   list.RemoveAt(list.Count-1);
  }
  object Peek()
  {
   return list[list.Count-1];
  }
 }


 /// <summary>
 /// //////////////应用举例
 /// </summary>
 class ExitstringClass//现有的对象(被适配对象)
 {
  public void SpecificRequest1()
  {
  }
  public void SpecificRequest2()
  {
  }
 }
 interface ITarget//客户希望的接口
 {
  void Request();
 }

 class Adapter:ITarget//适配对象(继承自客户希望的接口)
 {

  ExitstringClass adaptee;//被适配对象(现有的对象)
  public void Request()
  {
   adaptee.SpecificRequest1();
   adaptee.SpecificRequest2();
  }

 }
 /// <summary>
 /// /////////////////////////////////另外的系统
 /// </summary>
 class MySystem
 {
  public void Process(ITarget target)
  {
  }
 }

}

原文地址:https://www.cnblogs.com/kuailewangzi1212/p/345600.html