日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

管道( Pipeline )模型--示例

發(fā)布時(shí)間:2024/7/23 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 管道( Pipeline )模型--示例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

類圖


時(shí)序圖



閥門接口

/*** 閥門接口* @author administrator**/ public interface Valve {public String getName();public void invoke( Context context ); }
基本閥門

/*** 基礎(chǔ)閥門* @author administrator**/ public class BasicValve implements Valve{private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public BasicValve(String name) {super();this.name = name;}/*** 閥門通用方法*/public void invoke( Context context ){System.out.println( name + "閥門完成操作。" );} }


其它閥門

/*** 一般閥門對(duì)象* @author administrator**/ public class CommValve implements Valve{private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public CommValve(String name) {super();this.name = name;}public void invoke( Context context ){System.out.println( name + "閥門完成操作。" );context.invokeNext();} }
管道流

/*** 管道對(duì)象* @author administrator**/ public class Pipeline {List<Valve> valves = new ArrayList<Valve>();/*** 基礎(chǔ)閥門*/private Valve basic;public Valve getBasic() {return basic;}public void setBasic(Valve basic) {this.basic = basic;}public Pipeline(Valve basic) {super();this.basic = basic;}/*** 添加 閥門* @param v*/public void addValve( Valve v ){valves.add( v );}public void invoke(){Context context = new Context( valves.iterator(), this );context.invokeNext();} }
上下文

/*** 上下文對(duì)象* @author administrator**/ public class Context {private Iterator<Valve> valveIterator;private Pipeline pipeline;public Context(Iterator<Valve> valveIterator, Pipeline pipeline) {super();this.valveIterator = valveIterator;this.pipeline = pipeline;}public void invokeNext(){if( valveIterator.hasNext() ){Valve valve = valveIterator.next();valve.invoke( this );}else{pipeline.getBasic().invoke( this );}} }
測(cè)試類

public class TestMain {/*** @param args*/public static void main(String[] args) {Pipeline line = new Pipeline( new BasicValve( "Basic" ) );line.addValve( new CommValve( "A" ) );line.addValve( new CommValve( "B" ) );line.addValve( new CommValve( "C" ) );line.addValve( new CommValve( "D" ) );line.invoke();}}
運(yùn)行結(jié)果

A閥門完成操作。 B閥門完成操作。 C閥門完成操作。 D閥門完成操作。 Basic閥門完成操作。

總結(jié)

以上是生活随笔為你收集整理的管道( Pipeline )模型--示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。