自動測試:變化多端的輸出(5)

發表于:2014-12-17來源:uml.org.cn作者:不詳點擊數: 標簽:自動測試
String[] list = outputterList.split(;); 9 for (int i=0;i String outputter = list[i]; 11 if (outputter.equalsIgnoreCase(TXTOutputter)){ 12 oc.Add(new TXTOutputter()); 13 } 14 else if(outputter.equalsIg
String[] list = outputterList.split(";"); 9
for (int i=0;i
 
String outputter = list[i]; 11
if (outputter.equalsIgnoreCase("TXTOutputter")){ 12
oc.Add(new TXTOutputter()); 13
} 14
else if(outputter.equalsIgnoreCase("XMLOutputter")){ 15
/*oc.Add(new TXTOutputter());*/ 16
} 17
} 18
return null; 19
} 20
21
} 22

  代碼為示意代碼,真實代碼還有更多細節需要處理

  是的,就這么簡單。我們看到系統正常的工作了。也許你會問,那它是什么模式呢?我前面提過它是一種模式來著的。是的。它應該是組合模式(Composite Pattern)的一種退化形式。那為什么說他是退化的形式呢?我們先來看一下,組合模式的定義:

  合成(Composite)模型模式屬于對象的結構模式[GOF95],有時又叫做部分-整體(Part-Whole)模式。合成模式將對象組織到樹結構中,可以用來描述整體與部分的關系。合成模式可以客戶端將單純元素與復合元素同等看待。

  引用自《Java與模式》閻宏

  從這個定義可以看出合成模式大致有三個特點,一具用兩種對象,簡單對象和復雜對象,但兩種對象對客戶程序具有相同接口,二具有層次結構。三具有遞歸特性。

  從這些條件看來,我們的系統確實簡單的多,對于客戶程序來說,完全不知道有復雜對象,由于工廠的介入,系統不會有遞歸的情況出現,并且,對于該系統也沒有遞歸的要求。其實,這個輸出系統是組合模式,工廠模式,及寬窄接口方式綜合的來解決問題的。若上來就硬套一種模式的話,一定會帶來很大的煩麻。

原文轉自:http://www.uml.org.cn/Test/200902127.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97