using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
namespace ConsoleApp2
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("\r\n----Arraylist的继承-------------------");
MyInt array = new MyInt();
array.Add(111);
array.Add(222);
array.Add("Name");
foreach (var i in array)
{
Console.Write(i+" ");
}
Console.WriteLine("\r\n----类适配器-------------------");
AdapterClass ls = new AdapterClass();
ls.Push(125);
ls.Add("arr");
foreach (var i in ls)
{
Console.Write(i + " ");
}
Console.WriteLine("\r\n----对象的适配器-------------------");
Adapter adapter = new Adapter();
adapter.Push("aa");
adapter.Push(123);
adapter.Push("Name");
adapter.Push(array);
foreach (var i in adapter.adaptee)
{
Console.Write(i + " ");
}
Console.WriteLine("\r\nPeek():"+adapter.Peek());
Console.WriteLine("\r\nPop();" + adapter.Pop());
foreach (var i in adapter.adaptee)
{
Console.Write(i + " ");
}
Console.WriteLine();
Console.ReadLine();
}
}
public interface IStack //客户希望的接口
{
void Push(object item); //压栈
object Pop(); //出栈
object Peek(); //查寻
}
/// <summary>
/// 对象适配器
/// </summary>
public class Adapter : IStack //适配对象
{
public ArrayList adaptee ; //被适配的对象
public Adapter () { adaptee = new ArrayList(); }
public object Peek()
{
return adaptee[adaptee.Count - 1];
}
public object Pop()
{
object temp = adaptee[adaptee.Count - 1];
adaptee.RemoveAt(adaptee.Count-1);
return temp;
}
public void Push(object item)
{
adaptee.Add(item);
}
}
/// <summary>
/// 类适配器
/// </summary>
public class AdapterClass: ArrayList,IStack //适配对象
{
public object Peek()
{
return this[this.Count - 1];
}
public object Pop()
{
this.RemoveAt(this.Count - 1);
return this[this.Count - 1];
}
public void Push(object item)
{
this.Add(item);
}
}
/// <summary>
/// ArrayList的继承
/// </summary>
public class MyInt : ArrayList
{
}
}
----Arraylist的继承-------------------
111 222 Name
----类适配器-------------------
125 arr
----对象的适配器-------------------
aa 123 Name ConsoleApp2.MyInt
Peek():ConsoleApp2.MyInt
Pop();ConsoleApp2.MyInt
aa 123 Name