最近、Spring Bootのソースコードを見て、DispatcherServletの関心は、要求が到着し、クラスが実行される方法だけでなく、それに関与するデザインパターンを観察し、簡単な分析を行いました。
クラスの設計は、ビューの構造的な観点から、ブリッジパターンにする必要があります。これは、クラスの設計で見ることができるだけでなく、HttpServletの実装ですが、また、インターフェイスのSpringの機能を実装するために、機能を拡張する過程で、単一の親クラスの継承関係のブラインド使用されていない、この構造は、ブリッジパターンの定義に沿っています。
Springの実行時に、DispatcherServletがインスタンス化され、このクラスは、HttpServletdの機能を持っており、httpリクエストの処理は、最初にservice()メソッドを呼び出すDispatcherServletインスタンスによって処理され、その最終的な実装は、HttpServletBeanにあります。FrameworkServletは、FrameworkServletのサービスメソッドは、文super.service()を持っており、親クラスHttpServletBeanはservice()をオーバーライドしないので、HttpServletのサービスメソッドに、この時点ではサービスメソッドは、要求を処理するdoXXX()メソッドを呼び出すと、これらのメソッドは、DispatcherServletのインスタンスでは、特定の実装を持っているので、メソッドは、インスタンスで使用される、プロセスは非常に責任パターンのチェーンのデザインパターンのように感じるが、気持ちは少し遠いです。
下線は、クラス内にこのメソッドの実装がないことを示し、親クラスで探す必要があることを示しています。