原创 工廠方法模式

1.工廠方法模式的定義 定義一個用於創建對象的接口,讓子類決定實例化那一個類,工廠方法模式使一個類的實例化延遲到子類中去 2.工廠方法模式的UML圖 3.代碼實現 public interface Product{ //可

原创 中介者模式

1.中介者模式定義 用一箇中介對象來封裝一系列的對象交互。中介者使得各對象不需要顯式的相互調用,從而使其耦合鬆散,而且可以獨立的改變他們之間的交互 2.中介者模式UML圖 Mediater:中介者接口。在裏面定義各個同事之間相互

原创 生成器模式(Build)

1.生成器模式的定義 將一個複雜的對象的構件與它的表示分離,使得同樣的構建過程可以創建不同的表示 2.生成器模式的UML Builder :生成器接口,定義創建一個Product各個部件的操作 ConcreteBuilder:具體

原创 組合模式

1組合模式的定義 將對象組合成屬性結構以表示“部分-整體”的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性 2.組合模式的UML 3.代碼實現 public abstract Component{ public

原创 命令模式

1.命令模式的定義 將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化,對請求排隊或記錄請求日誌,以及支持可撤銷的操作 2.命令模式的UML Command:命令的接口,定義執行的方法 ConcreteCommand

原创 觀察者模式

1.觀察者模式的定義 定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變,所有依賴於它的對象都會得到通知並自動更新 2.觀察者模式的UML圖 Subject :目標對象。 Observer:觀察者接口 ConcreteSu

原创 狀態模式

1.狀態模式的定義 允許一個對象在其內部狀態改變時改變它的行爲。對象看起來似乎修改了它的類 2.狀態模式的UML圖 3.代碼實現 public interface State{ public void handle(Str

原创 策略模式

1.策略模式的定義 定義一系列的算法,把他們一個個封裝起來,並且使它們可以相互替換,本模式使得算法可獨立於使用它的客戶而變化 2.策略模式的UML圖 3.代碼實現 public interface Strategy{ pu

原创 抽象工廠模式

1.抽象工廠模式的定義 提供一個創建一系列的相關或是相互依賴對象的接口,而無需指定它們具體的類 2.抽象工廠模式的UML圖 3.代碼實現 public interface AbstractFactory{ public Abs

原创 裝飾器模式

1.裝飾器模式的定義 動態地給一個對象添加一些額外的職責。就增加功能來說,裝飾模式比生成子類更爲靈活 2.裝飾器模式的UML圖 Component:組件對象的接口,可以給這些對象動態的添加職責 ConcreteComponent:

原创 模板模式

1.模板模式的定義 定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得 子類可以不改變一個算法的結構即可重定義該算法的某些特定的步驟、 2.模板模式的UML圖 3.代碼實現 public abstractor Ab

原创 職責鏈模式

1.職責鏈模式的定義 使多個對象都有機會處理請求,從而避免請求的發送者和接受者之間的耦合關係。將這些對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有一個對象處理它爲至 2.職責鏈模式的UML 3.代碼實現 public abstrac

原创 單例模式

1.單例模式的定義 保證一個類只有一個實例,並且提供一個訪問它全局的訪問點 2.單例模式的UML圖 3.單例模式的代碼實現 懶漢式 public class Singleton{ private static Singl

原创 Heritrix源碼分析(十二) Heritrix的控制中心(大腦)CrawlController(一)

  CrawlController的確是Heritrix的大腦,在Heritrix中擁有無上的權利!可以控制Heritrix的啓動、暫停、停止,也定時進行數據統計、數據彙報和文件管理。同時CrawlController也基本上貫穿整個He

原创 Heritrix源碼分析(八) Heritrix8個處理器(Processor)介紹

Heritrix採用多線程去抓取數據,每次運行基本都要經過以下8個處理器處理(種子URL、先決條件URL除外),如此形成一整個流程。下面就大概介紹下每個處理器的作用以及大概處理的步驟。以後分析源碼的時候再細節分析......