Pattern Design--Bridge

 

/**
 *
 */
package com.sean.bridge;

import java.util.List;

/**
 * @author Sean_Zhang
 *
 */
public interface Question {
 public String nextQuestion();
 
 public String priorQuestion();
 
 public void newQuestion(String question);
 
 public boolean deleteQuestion(String q);
 
 public String getCurrentQuestion();
 
 public List<String> getAllQuestion();
 
 public String getCatalog();
}

/**
 *
 */
package com.sean.bridge;

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

/**
 * @author Sean_Zhang
 *
 */
public class JavaQuestion implements Question {
 private List<String> questions = new LinkedList<String>();
 
 private int current = 0;
 
 public JavaQuestion() {
  questions.add("What is Java? ");
        questions.add("What is an interface? ");
        questions.add("What is cross-platform? ");
        questions.add("What is UFT-8? ");
        questions.add("What is abstract? ");
        questions.add("What is Thread? ");
        questions.add("What is multi-threading? ");
 }

 /* (non-Javadoc)
  * @see com.sean.bridge.Question#deleteQuestion(java.lang.String)
  */
 public boolean deleteQuestion(String q) {
  return questions.remove(q);
 }

 /* (non-Javadoc)
  * @see com.sean.bridge.Question#getAllQuestion()
  */
 public List<String> getAllQuestion() {
  return Collections.unmodifiableList(questions);
 }

 /* (non-Javadoc)
  * @see com.sean.bridge.Question#getCatalog()
  */
 public String getCatalog() {
  return "java";
 }

 /* (non-Javadoc)
  * @see com.sean.bridge.Question#getCurrentQuestion()
  */
 public String getCurrentQuestion() {
  if(this.current >= questions.size()) {
   this.current = questions.size() - 1;
  }else if(this.current < 0) {
   this.current = 0;
  }
  if(questions.size() == 0) return null;
  return questions.get(this.current);
 }

 /* (non-Javadoc)
  * @see com.sean.bridge.Question#newQuestion(java.lang.String)
  */
 public void newQuestion(String question) {
  questions.add(question);
 }

 /* (non-Javadoc)
  * @see com.sean.bridge.Question#nextQuestion()
  */
 public String nextQuestion() {
  if(current >= questions.size()-1) {
   return null;
  }
  current++;
  return getCurrentQuestion();
 }

 /* (non-Javadoc)
  * @see com.sean.bridge.Question#priorQuestion()
  */
 public String priorQuestion() {
  if(current <= 0) {
   return null;
  }
  current--;
  return getCurrentQuestion();
 }

}

 

/**
 *
 */
package com.sean.bridge;

import java.util.List;

/**
 * @author Sean_Zhang
 *
 */
public class QuestionManager {
 protected Question questDB;
 
 public void setQuestion(Question questDB) {
  this.questDB = questDB;
 }
 
 public String next() {
  return questDB.nextQuestion();
 }
 
 public String prior() {
  return questDB.priorQuestion();
 }
 
 public void newOne(String question) {
  questDB.newQuestion(question);
 }
 
 public boolean delete(String question) {
  return questDB.deleteQuestion(question);
 }
 
 public String current() {
  return questDB.getCurrentQuestion();
 }
 
 public List<String> getAll() {
  return questDB.getAllQuestion();
 }
 
 public String getCatalog() {
  return questDB.getCatalog();
 }
 
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值