閒話Java基礎和開發平臺


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

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


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攝氏度。
表示層顯現給用戶“哎呀,今天好冷!”。
層就相當於一個黑盒子,我們不用知道它內部怎麼實現,只需要知道如何去調用它就行了。
每層只與上下相鄰的兩層打交道。當一層內部由於技術變遷發生變化時,只要接口不變,其他層不用做任何改變。
分層之後靈活性提高,也便於團隊分工開發。


 

發佈了50 篇原創文章 · 獲贊 21 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章