閒話Java基礎和開發平臺

achan2090發表於2007-09-05


工作已經整整兩年兩個月,然而仍讓人感覺時間短暫,眨眼即過。
我又走上了尋找工作的道路,離開一個熟悉的環境去尋找另外一個陌生的環境。
筆試、面試似乎要回到大四時期為工作而奔波的套路。
兩年自省,我究竟學到了什麼,我究竟能否將這條路走的又深又遠?

天行健,君子以自強不息。
----------------------------------------我就以這句化來激勵一下自己吧。


1.物件和類
所謂物件就是真實世界中的實體,物件與實體是一一對應的,也就是說現實世界中每一個實體都是一個物件,它是一種具體的概念。
所謂類是具備某些共同特徵的實體的集合,它是一種抽象的概念,用程式設計的語言來說,類是一種抽象的資料型別,它是對所具有相同特徵實體的抽象。

關係:類是為了描述物件的屬性和方法的,不同的物件可以抽象為一定的類。
物件有2個特點,一個是屬性,一個是方法。
描述物件的靜態狀態的,就是屬性
描述物件的動作狀態的,就是方法,也成為函式。

2.封裝
只要有足夠的方法,就沒必要直接去操作物件屬性,只要呼叫這些方法就可以實現要完成的任務,這種現象稱為封裝
通過物件方法對其屬性的操作把物件屬性封裝在一個物件內部,物件與外界打交道全部通過其自身的方法來實現,有效的把物件屬性隱藏在物件內部。


3.涉及企業的系統設計,免不了要跟J2ee平臺、MVC模型等等框架設計、構架設計打上交道,雖然現在接觸很多,但理解概念是很有用的。

MVC是什麼,mvc是一種軟體設計模式,最近幾年被推薦為Sun公司J2EE平臺的設計模式。MVC如何工作


MVC是一個設計模式,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心部件:模型、檢視、控制器。它們各自處理自己的任務。

檢視
 檢視是使用者看到並與之互動的介面。對老式的Web應用程式來說,檢視就是由HTML元素組成的介面,在新式的Web應用程式中,HTML依舊在檢視中扮演著重要的角色,但一些新的技術已層出不窮,它們包括Macromedia Flash和象XHTML,XML/XSL,WML等一些標識語言和Web services.
 如何處理應用程式的介面變得越來越有挑戰性。MVC一個大的好處是它能為你的應用程式處理很多不同的檢視。
 在檢視中其實沒有真正的處理髮生,不管這些資料是聯機儲存的還是一個僱員列表,作為檢視來講,它只是作為一種輸出資料並允許使用者操縱的方式。

模型
 模型表示企業資料和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。
 例如它可能用象EJBs和ColdFusion Components這樣的構件物件來處理資料庫。
 被模型返回的資料是中立的,就是說模型與資料格式無關,這樣一個模型能為多個檢視提供資料。
 由於應用於模型的程式碼只需寫一次就可以被多個檢視重用,所以減少了程式碼的重複性。

控制器
 控制器接受使用者的輸入並呼叫模型和檢視去完成使用者的需求。
 所以當單擊Web頁面中的超連結和傳送HTML表單時,控制器本身不輸出任何東西和做任何處理。
 它只是接收請求並決定呼叫哪個模型構件去處理請求,然後用確定用哪個檢視來顯示模型處理返回的資料。

現在我們總結MVC的處理過程,首先控制器接收使用者的請求,並決定應該呼叫哪個模型來進行處理,然後模型用業務邏輯來處理使用者的請求並返回資料,最後控制器用相應的檢視格式化模型返回的資料,並通過表示層呈現給使用者。


優點:
1.將資料層程式碼和像HTML這樣的表示層程式碼分離開來
2.多個檢視能共享一個模型,最大化的重用你的程式碼
3.模型是自包含的,並且與控制器和檢視相分離,所以很容易改變你的應用程式的資料層和業務規則,資料庫可移植性大大加強
4.運用MVC的應用程式的三個部件是相互對立,改變其中一個不會影響其它兩個,所以依據這種設計思想你能構造良好的鬆偶合的構件。


MVC的缺點
1.MVC的缺點是由於它沒有明確的定義,所以完全理解MVC並不是很容易。
2.同時由於模型和檢視要嚴格的分離,這樣也給除錯應用程式到來了一定的困難。每個構件在使用之前都需要經過徹底的測試。
3.由於我們將一個應用程式分成了三個部件,所以使用MVC同時也意味著你將要管理比以前更多的檔案
4.MVC並不適合小型甚至中等規模的應用程式,花費大量時間將MVC應用到規模並不是很大的應用程式通常會得不償失。


Java開發Web Application有幾種符合MVC設計模式的開發方式。

1:Jsp+Servlet+JavaBean(EJB)

2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)

3:TDK(Turbine,Velocity...)

4:Xsp

5:Jsp+Struts+JavaBean(EJB)

附:

三層架構即“表現層”,“業務層”,“持久化層”。
表現層實現的代表作品是Struts框架,業務層實現的代表作品是Spring,持久層實現的代表作品是Hibernate。

舉個例子。
持久層從持久庫中取出-10。
業務層按照一定的邏輯(這裡我們舉例取溫度的邏輯)翻譯成-10攝氏度。
表示層顯現給使用者“哎呀,今天好冷!”。
層就相當於一個黑盒子,我們不用知道它內部怎麼實現,只需要知道如何去呼叫它就行了。
每層只與上下相鄰的兩層打交道。當一層內部由於技術變遷發生變化時,只要介面不變,其他層不用做任何改變。
分層之後靈活性提高,也便於團隊分工開發。


 

相關文章