工廠模式很多人都了解,但是如果工廠裡邊的類非車多20個以上這樣**會非車繁瑣。
下面我介紹一下訪問者模式
我們設想乙個場景,對pdf,ppt, word文件進行 壓縮功能或者提取功能。
/*** 壓縮
*/public class compressor implements visitor
@override
public void visit(pdffile pdffile)
@override
public void visit(wordfile wordfile)
}
/**下邊是三種文件* 提取
*/public class extractor implements visitor
@override
public void visit(pdffile pdffile)
@override
public void visit(wordfile wordfile)
}
public class pdffile extends resourcefile@override
public void accept(visitor visitor)
}
public class wordfile extends resourcefile@override
public void accept(visitor visitor)
}
public class pptfile extends resourcefile@override
public void accept(visitor visitor)
}
/**下邊是測試類:* 訪問者介面
*/public inte***ce visitor
public class testcompressor compressor = new compressor();//壓縮
for (resourcefile resourcefile : resourcefiles)
}private static listlistallresourcefiles(string resourcedirectory)
}
24種設計模式 訪問者模式
定義 封裝一些作用於某種資料結構 list set map 中的各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。一 訪問員工資訊 1.訪問者介面 public inte ce ivisitor2.訪問者實現 public class visitor implements i...
23種設計模式 訪問者模式
在訪問者模式 visitor pattern 中,我們使用了乙個訪問者類,它改變了元素類的執行演算法。通過這種方式,元素的執行演算法可以隨著訪問者改變而改變。這種型別的設計模式屬於行為型模式。根據模式,元素物件已接受訪問者物件,這樣訪問者物件就可以處理元素物件上的操作。意圖 主要將資料結構與資料操作...
23種設計模式(9) 訪問者模式
定義 封裝某些作用於某種資料結構中各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。型別 行為類模式 類圖 訪問者模式可能是行為類模式中最複雜的一種模式了,但是這不能成為我們不去掌握它的理由。我們首先來看乙個簡單的例子,如下 class a public void metho...