日期:2017/11/30
出自《Java 编程思想》练习27:(1)写一个Command 类,包含一个String域 和 显示该String域的operation()方法;(2)写第二个类,它具有一个使用Command对象填充的Queue 并 返回该对象 的方法;(3)将填充好的 Queue 传递给第三个类的一个方法,该方法消耗Queue的对象,并 调用他们的operation()方法(显示每一个对象的String)。
代码构造图如下:
代码如下:
(1)Command.java
package PrepareTest.test11_QueueTest;
public class Command {
private String string;
//Construction
public Command(){}
public Command(String string){
this.string = string;
}
//Set/Get
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
//operation
public void operation (){
System.out.println("insert finished: "+string);
}
}
(2)Command_Queue.java
package PrepareTest.test11_QueueTest;
import java.util.LinkedList;
import java.util.Queue;
public class Command_Queue{
private Queue<Command> queue = new LinkedList<Command>();
//Construction
public Command_Queue(){
}
public Command_Queue(Command command){
this.queue.offer(command);
}
//Get/set
public Queue<Command> getQueue() {
return queue;
}
public void setQueue(Queue<Command> queue) {
this.queue = queue;
}
}
(3)Testdemo.java
package PrepareTest.test11_QueueTest;
import java.util.LinkedList;
import java.util.Queue;
public class Testdemo {
public void showQueue(Queue<Command> queue){
while(queue.peek() != null){
Command c = queue.remove();
c.operation();
}
}
}
(4)Test.java
package PrepareTest.test11_QueueTest;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
public class Test {
public static void main(String[] args) {
Queue<Command> list = new LinkedList<Command>();
list.add(new Command("mmb1")) ;
list.add(new Command("mmb2")) ;
list.add(new Command("mmb3")) ;
list.add(new Command("mmb4")) ;
for(Command c : list){
System.out.println("Insert: "+c.getString());
}
System.out.println("------------------");
//建立了两个对象,用内置方法完成了显示每一个Command对象的string
Command_Queue cq = new Command_Queue();
Testdemo t = new Testdemo();
cq.setQueue(list);
t.showQueue(cq.getQueue());
}
}