在管道过滤器风格的软件体系结构中,组件被称为过滤器,连接件就像是数据流传输的管道,将一个过滤器的输出传给另一个过滤器的输入。
示例程序如下:
【功能】:输出传送者传送的信息,输出接受者接收到的信息。
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);衔接管道两端。