訪問者模式一種工廠模式公升級版

2021-10-19 13:42:46 字數 1243 閱讀 7110

工廠模式很多人都了解,但是如果工廠裡邊的類非車多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 test 

compressor 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...