struts2的設計模式

傳統的基於servlet的開發模式。servlet對象是否線程安全?
web容器默認採用單servlet實例多線程的方式處理http請求。所有servlet不是線程安全的。
1、ThreadLocal模式
 原理:多個線程訪問同一共享變量時,ThreadLocal類爲每個線程提供一份該變量的副本,各個線程擁有一份屬於自己的變量副本,操作修改的是各自的變量副本,而不會相互影響。
在兩個方向完成數據隔離:
縱向:線程與線程之間的數據訪問隔離。
橫向:同一個線程中,不同的ThreadLocal實例操作的對象之間相互隔離
ThreadLocal模式最適合的場景?
在不同開發層次中共享數據
ThreadLocal模式的兩個主要步驟
1、建立一個類,並在其中封轉一個靜態的ThreadLocal變量,使其成爲共享數據環境。
2、在類中實現訪問靜態ThreaLocal變量的靜態方法。
2、裝飾模式
在這裏插入圖片描述
1、默認目標實現(TargetComponent)類封裝於具體實現類(ComponentDecorator)或者其子類內部,從而形成對對象之間的引用關係。
2、具體裝飾類(ComponentDecorator)同樣實現了原始接口。

3、策略模式
策略模式的目的在於把算法實現與算法使用環境解耦。添加新算法不影響原來對的環境繼續使用其代碼
在這裏插入圖片描述
策略模式涉及的主要角色:
環境角色:持有一個策略類的引用,決定具體調用那種策略。
抽象策略角色:這是一個抽象類或接口,是所有策略算法的核心歸納。
具體策略角色:封裝具體的策略算法或行爲。
4、建造者模式
在這裏插入圖片描述
建造者模式涉及4個角色:
客戶端:調用具體的構造器完成對象創建
抽象構造器角色:包含一組接口方法(有一個builder方法,和若干輔助方法)
具體構造器角色:具體構造器實現
產品角色:整個構造模式的產物。
責任鏈模式
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章