責(zé)任鏈模式:管道機(jī)制
在軟件開發(fā)的常接觸的責(zé)任鏈模式是FilterChain,它體現(xiàn)在很多軟件設(shè)計中:
1、比如Spring Security框架中
2、比如HttpServletRequest處理的過濾器中
當(dāng)一個request過來的時候,需要對這個request做一系列的加工,使用責(zé)任鏈模式可以使每個加工組件化,減少耦合。也可以使用在當(dāng)一個request過來的時候,需要找到合適的加工方式。當(dāng)一個加工方式不適合這個request的時候,傳遞到下一個加工方法,該加工方式再嘗試對request加工。
網(wǎng)上找了圖,這里我們后文將通過Tomcat請求處理向你闡述。
外觀模式:request請求
觀察者模式:事件監(jiān)聽
java中的事件機(jī)制的參與者有3種角色
1、Event Eource:事件源,發(fā)起事件的主體。
2、Event Object:事件狀態(tài)對象,傳遞的信息載體,就好比Watcher的update方法的參數(shù),可以是事件源本身,一般作為參數(shù)存在于listerner 的方法之中。
3、Event Listener:事件監(jiān)聽器,當(dāng)它監(jiān)聽到event object產(chǎn)生的時候,它就調(diào)用相應(yīng)的方法,進(jìn)行處理。
其實還有個東西比較重要:事件環(huán)境,在這個環(huán)境中,可以添加事件監(jiān)聽器,可以產(chǎn)生事件,可以觸發(fā)事件監(jiān)聽器。
模板方式: Lifecycle
LifecycleBase是使用了狀態(tài)機(jī)+模板模式來實現(xiàn)的。模板方法有下面這幾個: