熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

技術解析:什麼是模式?什麼是框架?

2013-11-23 19:50:48  來源: Java高級技術 

  現在軟件設計裡到處都是模式框架有次朋友問什麼是模式?我也在學習中就我的學習經驗給出以下小結(注意個人觀點僅供參考歡迎指正
  
  .什麼是模式?
  
  模式即pattern其實就是解決某一類問題的方法論你把解決某類問題的方法總結歸納到理論高度那就是模式
  
  Alexander給出的經典定義是每個模式都描述了一個在我們的環境中不斷出現的問題然後描述了該問題的解決方案的核心通過這種方式你可以無數次地使用那些已有的解決方案無需在重復相同的工作
  
  模式有不同的領域建築領域有建築模式軟件設計領域也有設計模式當一個領域逐漸成熟的時候自然會出現很多模式
  
  什麼是框架?
  
  框架即framework其實就是某種應用的半成品就是一組組件供你選用完成你自己的系統簡單說就是使用別人搭好的舞台你來做表演而且框架一般是成熟的不斷升級的軟件
  
  .為什麼要用模式?
  
  因為模式是一種指導在一個良好的指導下有助於你完成任務有助於你作出一個優良的設計方案達到事半功倍的效果而且會得到解決問題的最佳辦法
  
  為什麼要用框架?
  
  因為軟件系統發展到今天已經很復雜了特別是服務器端軟件設計到的知識內容問題太多在某些方面使用別人成熟的框架就相當於讓別人幫你完成一些基礎工作你只需要集中精力完成系統的業務邏輯設計而且框架一般是成熟穩健的他可以處理系統很多細節問題比如事物處理安全性數據流控制等問題還有框架一般都經過很多人使用所以結構很好所以擴展性也很好而且它是不斷升級的你可以直接享受別人升級代碼帶來的好處
  
  框架一般處在低層應用平台(如JEE)和高層業務邏輯之間的中間層
  
  軟件為什麼要分層?
  
  為了實現高內聚低耦合把問題劃分開來各個解決易於控制易於延展易於分配資源…總之好處很多啦
  
  .以下所述主要是JAVAJEE方面的模式和框架
  
  常見的設計模式有什麼?
  
  首先你要了解的是GOF的《設計模式可復用面向對象軟件的基礎》一書(這個可以說是程序員必備的了)注意GOF不是一個人而是指四個人它的原意是Gangs Of Four就是四人幫就是指此書的四個作者Erich GammaRichard HelmRalph JohnsonJohn Vlissides這本書講了種主要的模式包括抽象工廠適配器外觀模式等
  
  還有其他的很多模式估計有多種
  
  軟件設計模式太多就我的理解簡單說一下最常見的MVC模式
  
  MVC模式是年由Buschmann提出的
  
  模型(Model)就是封裝數據和所有基於對這些數據的操作
  
  視圖(View)就是封裝的是對數據顯示即用戶界面
  
  控制器(Control)就是封裝外界作用於模型的操作和對數據流向的控制等
  
  另外
  
  RUP(Rational Unified Process)軟件統一過程XP(Extreme Programming)極端編程這些通常被叫做過程方法是一種軟件項目實施過程的方法論它是針對軟件項目的實施過程提出的方法策略也是另一個角度的模式
  
  .常見的JAVA框架有什麼?
  
  WAF
  
  全稱WEB APPLICATION FRAMEWORK
  
  主要應用方面EJB層(WEB層也有但是比較弱)
  
  主要應用技術EJB等
  
  出處
  
  簡述這是SUN在展示JEE平台時所用的例子PetStore(寵物商店系統)裡面的框架是SUN藍皮書例子程序中提出的應用框架它實現了 MVC和其他良好的設計模式SUN的網站上有技術資料最好下載PetStore來研究WEBLOGIC裡自帶此系統源碼在bea\weblogic\samples\server\src\petstore這是學習了解JEE的首選框架
  
  Struts:
  
  主要應用方面WEB層
  
  主要應用技術JSPTagLibJavaBeanXML等
  
  出處
  
  簡述這是APACHE的開源項目目前應用很廣泛基於MVC模式結構很好基於JSPJbuilder裡已經集成了STRUTS的制作
  
  簡述WAF+STRUTS結合的例子WEB層用STRUTSEJB層用WAF
  
  JSP(TagLib)——>ActionForm——>Action ——> Event——>EJBAction——>EJB  ——>DAO——>Database JSP(TagLib) (forward) <——Action <——EventResponse<——
  
  Turbine
  
  主要應用方面WEB層
  
  主要應用技術servlet等
  
  出處
  
  簡述這是APACHE的開源項目基於SERVLET據說速度比較快基於service(pluggable implementation可插拔的執行組件)的方式提供各種服務
  
  COCOON
  
  主要應用方面WEB層
  
  主要應用技術XMLXSPservlet等
  
  出處
  
  簡述這是APACHE的一個開源項目基於XML基於XSP(通俗地說XSP是在XML靜態文檔中加入Java程序段後形成的動態XML文檔特點是可以與多種數據源交互包括文件系統數據庫LDAPXML資源庫網絡數據源等
  
  ECHO
  
  主要應用方面WEB層
  
  主要應用技術servlet等
  
  出處
  
  簡述nextapp公司的一個開源項目基於SERVLET頁面可以做的很漂亮結合echopoint可以作出很多圖形效果(裡面用了jfreechart包)使用SWING的思想來作網頁把HTML當作JAVA的類來做但是大量使用Session頁面分幀(Frame)很多系統資源消耗很大
  
  JATO
  
  全稱SUN ONE Application Framework
  
  主要應用方面WEB層
  
  主要應用技術JSPTagLibJavaBean等
  
  出處
  
  簡述這是SUN推出的一個商業性框架一看名字就知道是結合SUN ONE的平台推出的我下載了JATO看了一下感覺有些簡單使用了JSP+TagLib+JavaBean如他的DOC所說JATO是適合用在小的WEB應用裡
  
  TCF
  
  全稱ThinClient Framework
  
  主要應用方面JAVA GUI
  
  主要應用技術JAVA application等
  
  出處
  
  簡述這是IBM出的一個框架基於MVC模式基於JAVA Application推薦一篇介紹文章
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27561.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.