什么是模式?什么是框架?_JSP教程
推薦:為J2EE定制一個(gè)用來處理錯(cuò)誤的異常處理框架 回顧一下你上一個(gè)J2EE工程,是否遇到過類似錯(cuò)誤沒有記入日志或者被多次記錄的情況?是否只是因?yàn)樵谀程幋a吃 掉了異常導(dǎo)致你花費(fèi)無數(shù)次時(shí)間來跟蹤一個(gè)bug?是否你的用戶直接看到了
現(xiàn)在軟件設(shè)計(jì)里到處都是模式,框架。有次朋友問什么是模式?我也在學(xué)習(xí)中,就我的學(xué)習(xí)經(jīng)驗(yàn),給出以下小結(jié)。(注意:個(gè)人觀點(diǎn),僅供參考,歡迎指正。)
1.什么是模式?
模式,即pattern。其實(shí)就是解決某一類問題的方法論。你把解決某類問題的方法總結(jié)歸納到理論高度,那就是模式。
Alexander給出的經(jīng)典定義是:每個(gè)模式都描述了一個(gè)在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復(fù)相同的工作。
模式有不同的領(lǐng)域,建筑領(lǐng)域有建筑模式,軟件設(shè)計(jì)領(lǐng)域也有設(shè)計(jì)模式。當(dāng)一個(gè)領(lǐng)域逐漸成熟的時(shí)候,自然會(huì)出現(xiàn)很多模式。
什么是框架?
框架,即framework。其實(shí)就是某種應(yīng)用的半成品,就是一組組件,供你選用完成你自己的系統(tǒng)。簡(jiǎn)單說就是使用別人搭好的舞臺(tái),你來做表演。而且,框架一般是成熟的,不斷升級(jí)的軟件。
2.為什么要用模式?
因?yàn)槟J绞且环N指導(dǎo),在一個(gè)良好的指導(dǎo)下,有助于你完成任務(wù),有助于你作出一個(gè)優(yōu)良的設(shè)計(jì)方案,達(dá)到事半功倍的效果。而且會(huì)得到解決問題的最佳辦法。
為什么要用框架?
因?yàn)檐浖到y(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,設(shè)計(jì)到的知識(shí),內(nèi)容,問題太多。在某些方面使用別人成熟的框架,就相當(dāng)于讓別人幫你完成一些基礎(chǔ)工作,你只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì)。而且框架一般是成熟,穩(wěn)健的,他可以處理系統(tǒng)很多細(xì)節(jié)問題,比如,事物處理,安全性,數(shù)據(jù)流控制等問題。還有框架一般都經(jīng)過很多人使用,所以結(jié)構(gòu)很好,所以擴(kuò)展性也很好,而且它是不斷升級(jí)的,你可以直接享受別人升級(jí)代碼帶來的好處。
框架一般處在低層應(yīng)用平臺(tái)(如J2EE)和高層業(yè)務(wù)邏輯之間的中間層。
軟件為什么要分層?
為了實(shí)現(xiàn)“高內(nèi)聚、低耦合”。把問題劃分開來各個(gè)解決,易于控制,易于延展,易于分配資源…總之好處很多啦:)。
3.以下所述主要是JAVA,J2EE方面的模式和框架:
常見的設(shè)計(jì)模式有什么?
首先,你要了解的是GOF的《設(shè)計(jì)模式--可復(fù)用面向?qū)ο筌浖幕A(chǔ)》一書(這個(gè)可以說是程序員必備的了),注意:GOF不是一個(gè)人,而是指四個(gè)人。它的原意是Gangs Of Four,就是“四人幫”,就是指此書的四個(gè)作者:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides。這本書講了23種主要的模式,包括:抽象工廠、適配器、外觀模式等。
還有其他的很多模式,估計(jì)有100多種。
軟件設(shè)計(jì)模式太多,就我的理解簡(jiǎn)單說一下最常見的MVC模式。
MVC模式是1996年由Buschmann提出的:
模型(Model):就是封裝數(shù)據(jù)和所有基于對(duì)這些數(shù)據(jù)的操作。
視圖(View):就是封裝的是對(duì)數(shù)據(jù)顯示,即用戶界面。
控制器(Control):就是封裝外界作用于模型的操作和對(duì)數(shù)據(jù)流向的控制等。
另外:
RUP(Rational Unified Process)軟件統(tǒng)一過程,XP(Extreme Programming)極端編程,這些通常被叫做“過程方法”,是一種軟件項(xiàng)目實(shí)施過程的方法論,它是針對(duì)軟件項(xiàng)目的實(shí)施過程提出的方法策略。也是另一個(gè)角度的模式。
4.常見的JAVA框架有什么?
WAF:
全稱:WEB APPLICATION FRAMEWORK
主要應(yīng)用方面:EJB層,(WEB層也有,但是比較弱)。
主要應(yīng)用技術(shù):EJB等
出處:http://java.sun.com/blueprints/code/index.html
簡(jiǎn)述:這是SUN在展示J2EE平臺(tái)時(shí)所用的例子PetStore(寵物商店系統(tǒng))里面的框架。是SUN藍(lán)皮書例子程序中提出的應(yīng)用框架。它實(shí)現(xiàn)了 MVC和其他良好的設(shè)計(jì)模式。SUN的網(wǎng)站上有技術(shù)資料,最好下載PetStore來研究,WEBLOGIC里自帶此系統(tǒng),源碼在bea\weblogic700\samples\server\src\petstore。這是學(xué)習(xí)了解J2EE的首選框架。
免費(fèi)。
Struts:
主要應(yīng)用方面:WEB層。
主要應(yīng)用技術(shù):JSP,TagLib,JavaBean,XML等
出處:http://jakarta.apache.org/struts/index.html
簡(jiǎn)述:這是APACHE的開源項(xiàng)目,目前應(yīng)用很廣泛�;贛VC模式,結(jié)構(gòu)很好,基于JSP。Jbuilder8里已經(jīng)集成了STRUTS1.02的制作。
免費(fèi)。
簡(jiǎn)述WAF STRUTS結(jié)合的例子:WEB層用STRUTS,EJB層用WAF:
JSP(TagLib)——>ActionForm——>Action ——> Event——>EJBAction——>EJB ——>DAO——>Database JSP(TagLib) (forward) <——Action <——EventResponse<——
Turbine:
主要應(yīng)用方面:WEB層。
主要應(yīng)用技術(shù):servlet等
出處:http://jakarta.apache.org/turbine/index.html
簡(jiǎn)述:這是APACHE的開源項(xiàng)目。基于SERVLET。據(jù)說速度比較快,基于service(pluggable implementation可插拔的執(zhí)行組件)的方式提供各種服務(wù)。
免費(fèi)。
COCOON:
主要應(yīng)用方面:WEB層。
主要應(yīng)用技術(shù):XML,XSP,servlet等
出處:http://cocoon.apache.org/2.0/
簡(jiǎn)述:這是APACHE的一個(gè)開源項(xiàng)目。基于XML,基于XSP(通俗地說,XSP是在XML靜態(tài)文檔中加入Java程序段后形成的動(dòng)態(tài)XML文檔。)。特點(diǎn)是可以與多種數(shù)據(jù)源交互,包括文件系統(tǒng),數(shù)據(jù)庫,LDAP,XML資源庫,網(wǎng)絡(luò)數(shù)據(jù)源等。
免費(fèi)。
ECHO:
主要應(yīng)用方面:WEB層。
主要應(yīng)用技術(shù):servlet等
出處:http://www.nextapp.com/products/echo/
簡(jiǎn)述:nextapp公司的一個(gè)開源項(xiàng)目。基于SERVLET。頁面可以做的很漂亮,結(jié)合echopoint,可以作出很多圖形效果(里面用了jfreechart包)。使用SWING的思想來作網(wǎng)頁,把HTML當(dāng)作JAVA的類來做。但是大量使用Session,頁面分幀(Frame)很多,系統(tǒng)資源消耗很大。
免費(fèi)。
JATO:
全稱:SUN ONE Application Framework
主要應(yīng)用方面:WEB層。
主要應(yīng)用技術(shù):JSP,TagLib,JavaBean等
出處:http://www.sun.com/
簡(jiǎn)述:這是SUN推出的一個(gè)商業(yè)性框架,一看名字就知道是結(jié)合SUN ONE的平臺(tái)推出的。我下載了JATO2.0看了一下,感覺有些簡(jiǎn)單,使用了JSP+TagLib JavaBean。如他的DOC所說JATO是適合用在小的WEB應(yīng)用里。
免費(fèi)。
TCF:
全稱:Thin-Client Framework
主要應(yīng)用方面:JAVA GUI。
主要應(yīng)用技術(shù):JAVA application等
出處:http://www.alphaworks.ibm.com/tech/tcf
簡(jiǎn)述:這是IBM出的一個(gè)框架。基于MVC模式,基于JAVA Application。推薦一篇介紹文章:http://www-900.ibm.com/developerWorks/cn/java/j-tcf1/index.shtml
收費(fèi):每個(gè)企業(yè)對(duì)象license:2000美元。
5.其實(shí)本文的目的在于“拋磚引玉”,希望各路高手請(qǐng)你們把各種框架的特點(diǎn)和出處羅列一下 ,供大家參考,選用。
分享:J2EERI Pointbase數(shù)據(jù)庫遠(yuǎn)程命令執(zhí)行漏洞信息提供: 安全公告(或線索)提供熱線:[email protected] 漏洞類別: 設(shè)計(jì)錯(cuò)誤 攻擊類型: 嵌入惡意代碼 發(fā)布日期: 2003-12
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實(shí)現(xiàn)
- 網(wǎng)頁模板:關(guān)于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項(xiàng)目中連接Access數(shù)據(jù)庫的配置方法
- JDBC連接Access數(shù)據(jù)庫的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對(duì)路徑/虛擬路徑
- (jsp/html)網(wǎng)頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對(duì)路徑下的圖片解決方法
JSP教程Rss訂閱編程教程搜索
JSP教程推薦
- 初步接觸學(xué)習(xí)JSP語法基礎(chǔ)
- jsp驗(yàn)證碼使用
- CNET JSP BASICJSP的內(nèi)部對(duì)象
- JspSmartUpload上傳常見問題解析
- 揭秘幾個(gè)提升JSP應(yīng)用程序效率的小方法
- 對(duì)SUN定義的四種JDBC驅(qū)動(dòng)程序標(biāo)準(zhǔn)簡(jiǎn)介
- 用jsp實(shí)現(xiàn)SQLServe數(shù)據(jù)庫的備份和恢復(fù)
- CNET JSP BASICJSP語法的基本原理
- Spring學(xué)習(xí)基礎(chǔ)---與Struts整合
- 揭秘EL表達(dá)式語言的基礎(chǔ)總結(jié)
猜你也喜歡看這些
- J2ME中的時(shí)間處理方法
- 分割字符串以增強(qiáng)J2ME的String能力
- jsp中session過期設(shè)置及web.xml配置學(xué)習(xí)
- 揭秘幾個(gè)提升JSP應(yīng)用程序效率的小方法
- jsp+ajax實(shí)現(xiàn)無刷新(鼠標(biāo)離開文本框即驗(yàn)證用戶名)實(shí)現(xiàn)思路
- JSP初學(xué)者必須掌握的語法點(diǎn)
- JSP教程經(jīng)典入門學(xué)習(xí)資料
- jsp重定向地址欄不改變的實(shí)例
- J2ME中的通用聯(lián)網(wǎng)框架簡(jiǎn)介
- 關(guān)于Jsp頁面的幾種傳參方式
- 相關(guān)鏈接:
- 教程說明:
JSP教程-什么是模式?什么是框架?
。