Design Pattern--Adapter

来源:互联网 发布:手腕腱鞘炎 知乎 编辑:程序博客网 时间:2024/05/22 02:07

1.Simple Adapter

/**
 *
 */
package com.sean.adapter.simple;

import java.awt.event.WindowEvent;
import java.util.EventListener;

/**
 * @author Sean_Zhang
 *
 */
public interface WindowListener extends EventListener {
 public void windowOpened(WindowEvent e);

 public void windowClosing(WindowEvent e);

 public void windowClosed(WindowEvent e);

 public void windowIconified(WindowEvent e);

 public void windowDeiconified(WindowEvent e);

 public void windowActivated(WindowEvent e);

 public void windowDecativated(WindowEvent e);
}

 

/**
 *
 */
package com.sean.adapter.simple;

import java.awt.event.WindowEvent;

/**
 * @author Sean_Zhang
 *
 */
public class WindowAdapter implements WindowListener {

 /* (non-Javadoc)
  * @see com.sean.adapter.simple.WindowListener#windowActivated(java.awt.event.WindowEvent)
  */
 public void windowActivated(WindowEvent e) {
  // TODO Auto-generated method stub

 }

 /* (non-Javadoc)
  * @see com.sean.adapter.simple.WindowListener#windowClosed(java.awt.event.WindowEvent)
  */
 public void windowClosed(WindowEvent e) {
  // TODO Auto-generated method stub

 }

 /* (non-Javadoc)
  * @see com.sean.adapter.simple.WindowListener#windowClosing(java.awt.event.WindowEvent)
  */
 public void windowClosing(WindowEvent e) {
  // TODO Auto-generated method stub

 }

 /* (non-Javadoc)
  * @see com.sean.adapter.simple.WindowListener#windowDecativated(java.awt.event.WindowEvent)
  */
 public void windowDecativated(WindowEvent e) {
  // TODO Auto-generated method stub

 }

 /* (non-Javadoc)
  * @see com.sean.adapter.simple.WindowListener#windowDeiconified(java.awt.event.WindowEvent)
  */
 public void windowDeiconified(WindowEvent e) {
  // TODO Auto-generated method stub

 }

 /* (non-Javadoc)
  * @see com.sean.adapter.simple.WindowListener#windowIconified(java.awt.event.WindowEvent)
  */
 public void windowIconified(WindowEvent e) {
  // TODO Auto-generated method stub

 }

 /* (non-Javadoc)
  * @see com.sean.adapter.simple.WindowListener#windowOpened(java.awt.event.WindowEvent)
  */
 public void windowOpened(WindowEvent e) {
  // TODO Auto-generated method stub

 }

}

 

/**
 *
 */
package com.sean.adapter.simple;

import java.awt.event.WindowEvent;

/**
 * @author Sean_Zhang
 *
 */
public class WindowEventHandler extends WindowAdapter {
 /* (non-Javadoc)
  * @see com.sean.adapter.simple.WindowListener#windowClosed(java.awt.event.WindowEvent)
  */
 public void windowClosed(WindowEvent e) {
  // TODO Auto-generated method stub
  System.exit(0);
 }
}

 

2.Class Adapter

/**
 *
 */
package com.sean.adapter.cls;

/**
 * @author Sean_Zhang
 *
 */
public interface IOther {
 public String doOther();
}

/**
 *
 */
package com.sean.adapter.cls;

/**
 * @author Sean_Zhang
 *
 */
public interface ISome {
 public String doSome();
}

/**
 *
 */
package com.sean.adapter.cls;

/**
 * @author Sean_Zhang
 *
 */
public class OtherClass implements IOther {

 /* (non-Javadoc)
  * @see com.sean.adapter.cls.IOther#doOther()
  */
 public String doOther() {
  return "other";
 }
}

/**
 *
 */
package com.sean.adapter.cls;

/**
 * @author Sean_Zhang
 *
 */
public class SomeClass implements ISome {
 /* (non-Javadoc)
  * @see com.sean.adapter.cls.ISome#doSome()
  */
 public String doSome() {
  return "some";
 }
}

/**
 *
 */
package com.sean.adapter.cls;

/**
 * @author Sean_Zhang
 *
 */
public class SomeAndOther extends SomeClass implements IOther {
 private IOther other = null;
 
 public SomeAndOther(IOther other) {
  this.other = other;
 }
 
 public String doOther() {
  return other.doOther();
 }
}

3.Object Adapter

/**
 *
 */
package com.sean.adapter.obj;

import java.util.Enumeration;

/**
 * @author Sean_Zhang
 *
 */
public class MessageApplication {
 public String showAllMessages(Enumeration msgs) {
  String msg = "";
  while(msgs.hasMoreElements()) {
   String current = (String)msgs.nextElement();
   System.out.println(current);
   msg += " " + current;
  }
  return msg;
 }
}

/**
 *
 */
package com.sean.adapter.obj;

import java.util.Enumeration;
import java.util.Iterator;
import java.util.NoSuchElementException;

/**
 * @author Sean_Zhang
 *
 */
public class IteratorAdapter implements Enumeration {
 private Iterator iterator;
 
 public IteratorAdapter(Iterator iterator) {
  this.iterator = iterator;
 }
 
 public boolean hasMoreElements() {
  return iterator.hasNext();
 }
 
 public Object nextElement() throws NoSuchElementException {
  return iterator.next();
 }
}

/**
 *
 */
package com.sean.adapter.obj;

import java.util.ArrayList;
import java.util.List;


/**
 * @author Sean_Zhang
 *
 */
public class MessageClient {
 private MessageApplication msgApp;
 
 public String run() {
  msgApp = new MessageApplication();
  return msgApp.showAllMessages(createMsg());
 }
 
 private IteratorAdapter createMsg() {
  List<String> msgs = new ArrayList<String>();
  for(int i = 0;i < 3;i++) {
   msgs.add("thing" + i);
  }
  return new IteratorAdapter(msgs.iterator());
 }
}

 

原创粉丝点击