GoF (Gang of Four,四人組, 《Design Patterns: Elements of Reusable Object-Oriented Software》/《設計模式》一書的作者:Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)並沒有把MVC提及為一種設計模式,而是把它當做“一組用於構建用戶界面的類集合”。在他們看來,它其實是其它三個經典的設計模式的演變:觀察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和組合模式(Composite)。根據MVC在框架中的實現不同可能還會用到工廠模式(Factory)和裝飾器(Decorator)模式
正如我們所討論的,models表示應用的數據,而views處理屏幕上展現給用戶的內容。為此,MVC在核心通訊上基於推送/訂閱模型(驚訝的是 在很多關於MVC的文章中並沒有提及到)。當一個model變化時它對應用其它模塊發出更新通知(“publishes”),訂閱者 (subscriber)——通常是一個Controller,然后更新對應的view。觀察者——這種自然的觀察關系促進了多個view關聯到同一個 model。
對於感興趣的開發人員想更多的了解解耦性的MVC(根據不同的實現),這種模式的目標之一就是在一個主題和它的觀察者之間建立一對多的關系。當這個 主題改變的時候,它的觀察者也會得到更新。Views和controllers的關系稍微有點不同。Controllers幫助views對不同用戶的輸 入做不同的響應,是一個非常好的策略模式列子。