源码解析 使用tomcat作为web容器时,用到的外观模式
生活随笔
收集整理的這篇文章主要介紹了
源码解析 使用tomcat作为web容器时,用到的外观模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
源碼解析
使用tomcat作為web容器時,接收瀏覽器發(fā)送過來的請求,
tomcat會將請求信息封裝成ServletRequest對象,
如下圖①處對象。
但是大家想想ServletRequest是一個接口,它還有一個子接口HttpServletRequest,
而我們知道該request對象肯定是一個HttpServletRequest對象的子實現(xiàn)類對象,
到底是哪個類的對象呢?
可以通過輸出request對象,我們就會發(fā)現(xiàn)是一個名為RequestFacade的類的對象。
RequestFacade類就使用了外觀模式。先看結(jié)構(gòu)圖:
為什么在此處使用外觀模式呢?
定義 RequestFacade 類,分別實現(xiàn) ServletRequest ,同時定義私有成員變量 Request ,并且方法的實現(xiàn)調(diào)用 Request 的實現(xiàn)。
然后,將 RequestFacade上轉(zhuǎn)為 ServletRequest 傳給 servlet 的 service 方法,這樣即使在 servlet 中被下轉(zhuǎn)為 RequestFacade ,也不能訪問私有成員變量對象中的方法。
既用了 Request ,又能防止其中方法被不合理的訪問。
總結(jié)
以上是生活随笔為你收集整理的源码解析 使用tomcat作为web容器时,用到的外观模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JDK源码解析 —— IO流中的包装类使
- 下一篇: 组合模式——透明组合模式,安全组合模式