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)
{
}
}
}