設計模式 攔截過濾器模式

2021-10-22 02:15:46 字數 1965 閱讀 7686

設計模式簡介

設計模式(design pattern)代表了最佳的實踐,通常被有經驗的物件導向的軟體開發人員所採用。設計模式是軟體開發人員在軟體開發過程中面臨的一般問題的解決方案。這些解決方案是眾多軟體開發人員經過相當長的一段時間的試驗和錯誤總結出來的。

設計模式是一套被反覆使用的、多數人知曉的、經過分類編目的、**設計經驗的總結。使用設計模式是為了重用**、讓**更容易被他人理解、保證**可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使**編制真正工程化,設計模式是軟體工程的基石,如同大廈的一塊塊磚石一樣。專案中合理地運用設計模式可以完美地解決很多問題,每種模式在現實中都有相應的原理來與之對應,每種模式都描述了乙個在我們周圍不斷重**生的問題,以及該問題的核心解決方案,這也是設計模式能被廣泛應用的原因。

攔截過濾器模式

攔截過濾器模式(intercepting filter pattern)用於對應用程式的請求或響應做一些預處理/後處理。定義過濾器,並在把請求傳給實際目標應用程式之前應用在請求上。過濾器可以做認證/授權/記錄日誌,或者跟蹤請求,然後把請求傳給相應的處理程式。以下是這種設計模式的實體。

過濾器(filter) - 過濾器在請求處理程式執行請求之前或之後,執行某些任務。

過濾器鏈(filter chain) - 過濾器鏈帶有多個過濾器,並在 target 上按照定義的順序執行這些過濾器。

target - target 物件是請求處理程式。

過濾管理器(filter manager) - 過濾管理器管理過濾器和過濾器鏈。

客戶端(client) - client 是向 target 物件傳送請求的物件。

實現

建立介面並實現

public

inte***ce

filter

public

class

logfilter

implements

filter

}

public

class

errfilter

implements

filter

}

當做請求處理類

public

class

target

}

***鏈

public

class

filterchain

public

void

handle

(string

msg)

target

.index

(msg);

}public

void

settarget

(target

target

)}

***管理器

public

class

filtermanager

public

void

setfilter

(filter

filter

)public

void

filterhandle

(string

msg)

}

模擬請求

public

class

client

}

結果

logfilter:

123errfilter:

123這個類只是對請求的

123做出處理

設計模式之過濾器模式

有時候我們需要在一堆物件的集合裡找到我們需要的物件,這種情況如果比較簡單的過濾,我們可以簡單的用if else去判斷,如果這種過濾是比較具有復用性質的過濾條件,例如在所有使用者裡篩選出成年人,還有就是在增加過濾條件的時候要去加if語句,不是特別的靈活,這個時候可以嘗試用過濾器模式去解決問題。值得一提...

設計模式之 過濾器模式

跳轉到 設計模式彙總 過濾器模式 1 從資料裡面找出想要的某些資料,邏輯相對簡單,也很常見,沒什麼好說的。2 這裡面唯一的一點東西是,得出的資料進行並 或運算.也沒啥,public abstract class vehicle public class car vehicle public clas...

設計模式之 過濾器模式

這種模式允許開發人員使用不同的標準來過濾一組物件,通過邏輯運算以解耦的方式把它們連線起來。這種型別的設計模式屬於結構型模式,它結合多個標準來獲得單一標準。舉例 場景 中國移動有很多營銷活動,而參加這些營銷活動的物件是有要求的,有的需要判斷在網時長,有的需要有最低 要求等。實現 制定不同的規則來對一組...