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);
}
}
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);
}
}
我的理解就是适配器就是2个不同组件之间连接。
你这里Adaptee为IStack,Adaptor为ObjectAdapter,属于适配者模式中的对象适配器。这样写没有问题。
只是我觉得适配器用抽象类更好比如:public abstract class ObjectAdapter implements IStack{
摘自 适配器模式 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!");
}
}