在管道過濾器風格的軟件體系結構中,組件被稱爲過濾器,連接件就像是數據流傳輸的管道,將一個過濾器的輸出傳給另一個過濾器的輸入。
示例程序如下:
【功能】:輸出傳送者傳送的信息,輸出接受者接收到的信息。
import java.io.*;
import java.util.*;
public class TestPiped{
public static void main(String [] args){
sender s = new sender();
receiver r = new receiver();
PipedOutputStream out = s.getOut();
PipedInputStream in = r.getIn();
try{
in.connect(out);
s.start();
r.start();
}catch(Exception e){
e.printStackTrace();
}
}
}
class sender extends Thread {
PipedOutputStream out = new PipedOutputStream();
public PipedOutputStream getOut(){
return out;
}
public void run() {
String str = "你好,接收者,我是傳送者。\n";
System.out.println("傳送者傳送的信息爲:"+str);
try {
out.write(str.getBytes());
out.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
class receiver extends Thread {
PipedInputStream in = new PipedInputStream();
public PipedInputStream getIn() {
return in;
}
public void run(){
byte [] buf = new byte[1024];
try {
int len = in.read(buf);
System.out.print("接收者接到的信息爲:"+new String(buf,0,len));
in.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
組件:對數據進行處理的過濾器sender和receiver。
連接件:PipedOutputStream out = s.getOut();發送端送出數據。
PipedInputStream in = r.getIn();接收端接收數據。
in.connect(out);銜接管道兩端。