軟件設計模式之攔截過濾器模式
當我們想對應用程序的請求或響應進行一些預處理/后處理時,將使用攔截過濾器設計模式。在將請求傳遞到實際目標應用程序之前,已定義過濾器并將其應用于請求。過濾器可以對請求進行身份驗證/授權/記錄或跟蹤,然后將請求傳遞給相應的處理程序。以下是這種類型的設計模式的實體。過濾器-過濾器,它將在請求處理程序執(zhí)行請求之前或之后執(zhí)行某些任務。過濾器鏈-過濾器鏈帶有多個過濾器,有助于···
當我們想對應用程序的請求或響應進行一些預處理/后處理時,將使用攔截過濾器設計模式。在將請求傳遞到實際目標應用程序之前,已定義過濾器并將其應用于請求。過濾器可以對請求進行身份驗證/授權/記錄或跟蹤,然后將請求傳遞給相應的處理程序。以下是這種類型的設計模式的實體。過濾器-過濾器,它將在請求處理程序執(zhí)行請求之前或之后執(zhí)行某些任務。過濾器鏈-過濾器鏈帶有多個過濾器,有助于···
當我們想使用JNDI查找來定位各種服務時,將使用服務定位器設計模式。考慮到為服務查找JNDI的高昂成本,服務定位器模式利用了緩存技術。第一次需要服務時,服務定位器會在JNDI中查找并緩存服務對象。通過服務定位器進行的進一步查找或相同服務在其緩存中完成,這在很大程度上提高了應用程序的性能。以下是這種類型的設計模式的實體。服務-將處理請求的實際服務。此類服務的參考將在JNDI服務···
在“空對象”模式中,空對象將替換對空對象實例的檢查??諏ο蟛皇菆?zhí)行if檢查是否為空值,而是反映了“不做任何事”的關系。在沒有數(shù)據(jù)的情況下,此類Null對象還可用于提供默認行為。在“空對象”模式中,我們創(chuàng)建一個抽象類,指定要完成的各種操作,擴展該類的具體類和提供該類的任何實現(xiàn)的空對象類,將在需要檢查空值的地方被隱蔽地使用。實作我們將創(chuàng)建一個定義外觀的AbstractCustomer···
外觀模式隱藏了系統(tǒng)的復雜性,并提供了到客戶端的接口,客戶端可以使用該接口訪問系統(tǒng)。這種設計模式屬于結構模式,因為該模式向現(xiàn)有系統(tǒng)添加了接口以隱藏其復雜性。此模式涉及一個類,該類提供了客戶端所需的簡化方法,并將調用委托給現(xiàn)有系統(tǒng)類的方法。實作我們將創(chuàng)建一個Shape接口和實現(xiàn)Shape接口的具體類。下一步將定義外觀類ShapeMaker。ShapeMaker類使用具體的類將用戶調用委派給這···
組合模式用于需要以類似方式將一組對象視為單個對象的情況。組合模式根據(jù)樹結構組成對象,以表示部分以及整個層次結構。這種設計模式屬于結構模式,因為該模式創(chuàng)建了一組對象的樹形結構。此模式創(chuàng)建一個包含其自己的對象組的類。此類提供了修改其相同對象組的方法。我們通過以下示例演示復合模式的使用,在該示例中我們將顯示組織的員工層次結構。實作我們有一個Employee類,它充當復合?!ぁぁ?/p>
過濾器模式或條件模式是一種設計模式,使開發(fā)人員可以使用不同的條件過濾一組對象,并通過邏輯操作以分離的方式鏈接它們。這種類型的設計模式屬于結構模式,因為該模式組合了多個條件以獲得單個條件。實作我們將創(chuàng)建一個Person對象,Criteria接口和實現(xiàn)此接口的具體類,以過濾Person對象的列表 。CriteriaPatternDemo,我們的演示類使用Criteria對象根據(jù)各種條件及其組合來過濾Person對象···
在狀態(tài)模式中,類行為根據(jù)其狀態(tài)而變化。這種設計模式屬于行為模式。在狀態(tài)模式中,我們創(chuàng)建表示各種狀態(tài)的對象和上下文對象,其行為隨其狀態(tài)對象的變化而變化。實作我們將創(chuàng)建一個定義操作的State接口和實現(xiàn)State接口的具體狀態(tài)類。上下文是承載狀態(tài)的類。我們的演示類StatePatternDemo將使用Context和狀態(tài)對象根據(jù)所處狀態(tài)的類型來演示Context行為的變化。第1步創(chuàng)建一個接口。State.jav···
中介者模式用于降低多個對象或類之間的通信復雜性。此模式提供了一個調解器類,該調解器類通常處理不同類之間的所有通信,并通過松散耦合支持輕松維護代碼。中介者模式屬于行為模式類別。實作我們以一個聊天室為例演示中介模式,其中多個用戶可以將消息發(fā)送到聊天室,并且聊天室有責任向所有用戶顯示消息。我們創(chuàng)建了兩個類ChatRoom和User。用戶對象將使用ChatRoom方法共享他們的消息。我···
迭代器模式是Java和.Net編程環(huán)境中非常常用的設計模式。此模式用于獲得一種以順序方式訪問集合對象元素的方式,而無需了解其基礎表示形式。迭代器模式屬于行為模式類別。實作我們將創(chuàng)建一個講述導航方法的Iterator接口和一個重新運行Iterator的Container接口。實現(xiàn)Container接口的具體類將負責實現(xiàn)Iterator接口并使用它IteratorPatternDemo,我們的演示類將使用NamesRepository,一個具體···