程序有时候需要将任务按流水式进行,例如评判体操选手的任务按流水式为依次的三个步骤:录入裁判给选手的分数,去掉一个最高分和最低分,计算出平均成绩,编写程序,搭建流水线,只需将评判体操选手的任务交给流水线即可。
运行效果
代码
// DoThing.java
public abstract class DoThing {
public abstract void doThing(double [] a);
public abstract void setNext(DoThing next);
}
// DelMaxAndMin.java
import java.util.*;
public class DelMaxAndMin extends DoThing {
DoThing nextDoThing;
public void setNext(DoThing next){
nextDoThing=next;
}
public void doThing(double []a){
Arrays.sort(a);
double []b=Arrays.copyOfRange(a,1,a.length);
System.out.print("去掉一个最高分"+b[b.length-1]+",");
System.out.print("去掉一个最低分"+b[0]);
nextDoThing.doThing(b);
}
}
// ComputerAver.java
public class ComputerAver extends DoThing {
DoThing nextDoThing;
public void setNext(DoThing next){
nextDoThing=next;
}
public void doThing(double[]a){
double sum=0;
for(int i=0;i<a.length;i++){
sum=sum+a[i];
}
double aver=sum/a.length;
System.out.print("选手最后得分"+aver);
}
}
// Main.java
public class Main {
public static void main(String[] args) {
StreamLine line=new StreamLine();
double []a=new double[1];
line.giveResult(a);
}
}