我在面談應徵的工程師時,常請對方說明一個最熟悉的設計樣式。通常得到的答案是MVC(model-view-controller)。
可惜,MVC不是設計樣式,是架構樣式(Architectural Pattern)。而且應徵者的描述大多不正確。我猜原因是因為大多人是從所謂MVC framework學MVC的運作。但MVC Frameworks大多都不是真的MVC架構,真正的MVC架構裏需要實做一個Observer,讓Model改變時可以通知View跟Controller。這在網頁架構下很難實做。
樣式運動不是只針對設計。有一本樣式巨作POSA(Pattern-Oriented Software Architecture)第一冊,,地位僅次於GoF Design Patterns,書中就依照樣式的特性分三類:
- Architectural Patterns︰定義系統的基本架構或子系統的切割。如MVC、Layers(Tiers)、Pipes、Microkernel等等
- Design Patterns︰解決一般設計問題。像Observer、Proxy等
- Idioms︰關於程式語言的低階的patterns
沒有留言:
張貼留言