package myTable;import java.util.ArrayList;interface IStack{
   void push(int a);
   void pop();
   int getPeak();
}public class ObjectAdapter implements IStack{
   ArrayList adaptee;
   public void push(int a){
      adaptee.add(a);
   }
   
   public void pop(){
      adaptee.remove(adaptee.size()-1);
   }
   
   public int getPeak(){
      return (Integer) adaptee.get(adaptee.size()-1);
   }
}

解决方案 »

  1.   

    除了adaptee没初始化,形象。
    我的理解就是适配器就是2个不同组件之间连接。
      

  2.   

    适配者模式将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份.
    你这里Adaptee为IStack,Adaptor为ObjectAdapter,属于适配者模式中的对象适配器。这样写没有问题。
      

  3.   

    其实没问题的呀~
    只是我觉得适配器用抽象类更好比如:public abstract class ObjectAdapter implements IStack{
      

  4.   

    2.为什么要用抽象类:   此类是不要被实例化的。而只充当适配器的角色,也就为其子类提供了一个共同的接口,但其子类又可以将精力只集中在其感兴趣的地方。 
    摘自 适配器模式 from百度百科------------------------------------------------------我觉得是个人理解不同,因为我认为的适配器模式是实现了一个接口的所有方法的抽象类,而这样的类用户在使用的时候就可以专注的实现自己需要的方法,而不用像继承接口的那样需要实现所有方法。如:
    interface athlete{
       void run();
       void swim();
       void dive();
    }public abstract class athleteAdapter implements athlete{   public void run(){
       }   
       public void swim(){
       }  
       public void dive(){
       }
    }class athletes extends athleteAdapter{
    public void run(){
    System.out.println("Start running!");
    }
    }
    class swimmer extends athleteAdapter{
    public void swim(){
    System.out.println("Start swimming!");
    }
    }
    class diver extends athleteAdapter{
    public void dive(){
    System.out.println("Start diving!");
    }
    }