當前位置:編程學習大全網 - 源碼下載 - 關於模式的具體定義是什麽?

關於模式的具體定義是什麽?

分類: 電腦/網絡 >> 反病毒

問題描述:

壹直在說什麽什麽模式,可是模式的具體定義是什麽?

什麽是模式?模式包含哪些要素呢?

解析:

什麽是模式?什麽是框架?

?現在軟件設計裏到處都是模式,框架。有次朋友問什麽是模式?我也在學習中,就我的學習經驗,給出以下小結。(註意:個人觀點,僅供參考,歡迎指正。)

1.什麽是模式?

模式,即pattern。其實就是解決某壹類問題的方法論。妳把解決某類問題的方法總結歸納到理論高度,那就是模式。

Alexander給出的經典定義是:每個模式都描述了壹個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,妳可以無數次地使用那些已有的解決方案,無需在重復相同的工作。

模式有不同的領域,建築領域有建築模式,軟件設計領域也有設計模式。當壹個領域逐漸成熟的時候,自然會出現很多模式。

什麽是框架?

框架,即framework。其實就是某種應用的半成品,就是壹組組件,供妳選用完成妳自己的系統。簡單說就是使用別人搭好的舞臺,妳來做表演。而且,框架壹般是成熟的,不斷升級的軟件。

2.為什麽要用模式?

因為模式是壹種指導,在壹個良好的指導下,有助於妳完成任務,有助於妳作出壹個優良的設計方案,達到事半功倍的效果。而且會得到解決問題的最佳辦法。

為什麽要用框架?

因為軟件系統發展到今天已經很復雜了,特別是服務器端軟件,設計到的知識,內容,問題太多。在某些方面使用別人成熟的框架,就相當於讓別人幫妳完成壹些基礎工作,妳只需要集中精力完成系統的業務邏輯設計。而且框架壹般是成熟,穩健的,他可以處理系統很多細節問題,比如,事物處理,安全性,數據流控制等問題。還有框架壹般都經過很多人使用,所以結構很好,所以擴展性也很好,而且它是不斷升級的,妳可以直接享受別人升級代碼帶來的好處。

框架壹般處在低層應用平臺(如J2EE)和高層業務邏輯之間的中間層。

軟件為什麽要分層?

為了實現“高內聚、低耦合”。把問題劃分開來各個解決,易於控制,易於延展,易於分配資源…總之好處很多啦:)。

3.以下所述主要是JAVA,J2EE方面的模式和框架:

常見的設計模式有什麽?

首先,妳要了解的是GOF的《設計模式--可復用面向對象軟件的基礎》壹書(這個可以說是程序員必備的了),註意:GOF不是壹個人,而是指四個人。它的原意是Gangs Of Four,就是“四人幫”,就是指此書的四個作者:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides。這本書講了23種主要的模式,包括:抽象工廠、適配器、外觀模式等。

還有其他的很多模式,估計有100多種。

軟件設計模式太多,就我的理解簡單說壹下最常見的MVC模式。

MVC模式是1996年由Buschmann提出的:

模型(Model):就是封裝數據和所有基於對這些數據的操作。

視圖(View):就是封裝的是對數據顯示,即用戶界面。

控制器(Control):就是封裝外界作用於模型的操作和對數據流向的控制等。

另外:

RUP(Rational Unified Process)軟件統壹過程,XP(Extreme Programming)極端編程,這些通常被叫做“過程方法”,是壹種軟件項目實施過程的方法論,它是針對軟件項目的實施過程提出的方法策略。也是另壹個角度的模式。

4.常見的JAVA框架有什麽?

WAF:

全稱:WEB APPLICATION FRAMEWORK

主要應用方面:EJB層,(WEB層也有,但是比較弱)。

主要應用技術:EJB等

出處:java.sun/blueprints/code/index

簡述:這是SUN在展示J2EE平臺時所用的例子PetStore(寵物商店系統)裏面的框架。是SUN藍皮書例子程序中提出的應用框架。它實現了 MVC和其他良好的設計模式。SUN的網站上有技術資料,最好下載PetStore來研究,WEBLOGIC裏自帶此系統,源碼在bea\weblogic700\samples\server\src\petstore。這是學習了解J2EE的首選框架。

免費。

Struts:

主要應用方面:WEB層。

主要應用技術:JSP,TagLib,JavaBean,XML等

出處:jakarta.apache/struts/index

簡述:這是APACHE的開源項目,目前應用很廣泛。基於MVC模式,結構很好,基於JSP。Jbuilder8裏已經集成了STRUTS1.02的制作。

免費。

簡述WAF+STRUTS結合的例子:WEB層用STRUTS,EJB層用WAF:

JSP(TagLib)?>ActionForm?>Action ?> Event?>EJBAction?>EJB ?>DAO?>Database JSP(TagLib) (forward) <?Action <?EventResponse<?Turbine:

主要應用方面:WEB層。

主要應用技術:servlet等

出處:jakarta.apache/turbine/index

簡述:這是APACHE的開源項目。基於SERVLET。據說速度比較快,基於service(pluggable implementation可插拔的執行組件)的方式提供各種服務。

免費。

COCOON:

主要應用方面:WEB層。

主要應用技術:XML,XSP,servlet等

出處:cocoon.apache/2.0/

簡述:這是APACHE的壹個開源項目。基於XML,基於XSP(通俗地說,XSP是在XML靜態文檔中加入Java程序段後形成的動態XML文檔。)。特點是可以與多種數據源交互,包括文件系統,數據庫,LDAP,XML資源庫,網絡數據源等。

免費。

ECHO:

主要應用方面:WEB層。

主要應用技術:servlet等

出處:nextapp/products/echo/

簡述:nextapp公司的壹個開源項目。基於SERVLET。頁面可以做的很漂亮,結合echopoint,可以作出很多圖形效果(裏面用了jfreechart包)。使用SWING的思想來作網頁,把HTML當作JAVA的類來做。但是大量使用Session,頁面分幀(Frame)很多,系統資源消耗很大。

  • 上一篇:Sfilter源代碼
  • 下一篇:如何用php制作壹個登錄註冊留言板
  • copyright 2024編程學習大全網