MVC將數據和業務規則從表示層分離出來,可以最大化代碼的重用。而且模型返回的數據沒有格式化,所以同壹個組件可以被不同的接口使用。模型是自包含的,與控制器和視圖分離,因此很容易改變應用程序的數據層和業務規則。如果妳想把數據庫從MySQL遷移到Oracle,或者把基於RDBMS的數據源改成LDAP,只要換個模型就行了。而且,只要模型實現正確,無論您的數據來自數據庫還是LDAP服務器,視圖都會正確顯示它們。另外,MVC應用的三個組件是相互對立的,改變其中壹個不會影響到另外兩個。根據這種設計思想,可以構造出良好的耦合部件。
MVC的優勢不是體現在產品的功能上,而是讓軟件的結構更加合理,修改更加方便。如果要改變壹個頁面,只需要改變頁面和控制層的關系,不需要改變任何程序。
華天電力辦公自動化平臺在MVC架構中的應用
首先,在數據層,我們可以通過中間件進行通信。這樣就不需要寫任何壹行代碼,通過簡單的類和數據庫表的映射就可以實現數據庫表的添加、刪除和修改。整個程序沒有壹條SQL語句,不需要修改代碼就可以實現自動切換到各種數據庫類型。(比如MySQL/SQLSERVER/ORACLE)
第二,通過標簽定義實現與業務層的連接。在HTML頁面中,沒有壹行程序代碼,只有標簽定義。如果頁面需要更改,只需更改標簽和業務層的連接關系即可。
再次,通過獨立的子項目進行內部管理,既能保證每個子項目的系統獨立性,又能保證系統的整體管理。
第四,通過頁面和程序的分離,實現多種語言、多種風格的不同顯示系統。SOA(service-oriented architecture)面向服務的架構,是壹個非常抽象的技術術語,也是目前最先進的技術架構之壹。IBM也致力於推廣SOA架構。簡單來說,SOA是基於WEB的,WEB為每個應用提供了相關的接口,類似於最初的API。這樣系統外的其他系統就可以在不知道程序內部具體釋放方式的情況下調用相關的系統函數。
比如收發短信的接口,如果短信服務器提供了這樣類似的接口,那麽第三方軟件就可以很容易地用它發送短信。壹個復雜的系統通常會提供成千上萬個類似的接口,通過這些接口,外部系統可以在壹定的規範內與原系統進行交互。
華天電力OA平臺壹般提供兩種接口類型:
第壹個接口是BEAN type,這是初始接口。通過他的類包和相關的類包定義,其他JAVA系統可以和這個系統進行通信。
第二個接口是WebService類型。其他系統可以在不了解OA內部系統細節的情況下,通過OA平臺提供的Webservice接口調用OA系統的部分或全部功能。比如華天電力的OA助手本身沒有數據存儲,是瘦客戶端,不能讀寫數據庫。但是通過調用OA系統的接口,可以實現與OA系統的交互。與JAVA類包接口不同,WebService接口不僅可以被JAVA程序調用,也可以被VB/Delphi/PB等幾乎所有編程語言調用。它不僅在B/S中使用,還可以被C/S程序調用,大大增強了程序的可擴展性。整個軟件基於WebService系統開發,web service系統是SOA的核心內容,這也是華天電力以SOA為架構的基礎。