01Java語言特性與設計模式_第1頁
01Java語言特性與設計模式_第2頁
01Java語言特性與設計模式_第3頁
01Java語言特性與設計模式_第4頁
01Java語言特性與設計模式_第5頁
已閱讀5頁,還剩26頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

讓資金管理得更好!Java語言特性與設計模式

內部培訓深圳市拜特科技股份技術開展部-桂艷軍整理課件目錄讓資金管理得更好!第一局部 程序設計語言及其依賴的環境

第二局部 程序設計語言的開展簡史

第三局部 Java語言和Java平臺

第四局部如何理解設計模式

第五局部開始邁進JavaEE整理課件第一局部程序設計語言及其依賴的環境讓資金管理得更好!1.馮?諾依曼計算機及其體系結構馮諾依曼首先提出了“存儲程序〞的思想,大大提高了計算機的速度。后人按照這種思想和結構設計的計算機稱為馮諾依曼計算機?!按鎯Τ绦颞曀枷肟梢院喕爬?點:〔1〕計算機應用包括運算器、控制器、存儲器、輸入/輸出設備。〔2〕計算機內部應采用二進制來表示指令和數據?!?〕將編制好的程序和數據送會內存儲器,然后計算機自動地逐條取出指令和數據進行分析、處理和執行。整理課件第一局部程序設計語言及其依賴的環境讓資金管理得更好!2.程序設計語言的理論根底馮諾依曼理論的要點是:數字計算機的數制采用二進制;計算機應該按照程序順序執行。

整理課件第二局部程序設計語言的開展簡史讓資金管理得更好!1.程序設計語言的開展回憶一切可計算的問題都能計算,這樣的虛擬機或者編程語言就叫圖靈完備的。一個能計算出每個圖靈可計算函數〔Turing-computablefunction〕的計算系統被稱為圖靈完備的。一個語言是圖靈完備的,意味著該語言的計算能力與一個通用圖靈機〔UniversalTuringMachine〕相當,這也是現代計算機語言所能擁有的最高能力。圖靈完備是什么意思呢?在可計算理論中,當一組數據操作的規那么〔一組指令集,編程語言〕滿足任意數據按照一定的順序可以計算出結果,被稱為圖靈完備〔turingcomplete〕。一個有圖靈完備指令集的設備被定義為通用計算機。如果是圖靈完備的,它〔計算機設備〕有能力執行條件跳轉〔“if〞和“goto〞語句〕以及改變內存數據。如果某個東西展現出了圖靈完備,它就有能力表現出可以模擬原始計算機,而即使最簡單的計算機也能模擬出最復雜的計算機。所有的通用編程語言和現代計算機的指令集都是圖靈完備的〔C++template就是圖靈完備的〕,都能解決內存有限的問題。圖靈完備的機器都被定義有無限內存,但是機器指令集卻通常定義為只工作在特定的,有限數量的RAM上。整理課件第二局部程序設計語言的開展簡史讓資金管理得更好!程序設計語言的4大成分:數據:傳輸:計算:控制:(1).機器語言機器語言是直接用二進制代碼指令表達的計算機語言,指令是用0和1組成的一串代碼,它們有一定的位數,并分成假設干段,各段的編碼表示不同的含義,例如某臺計算機字長為16位,即有16個二進制數組成一條指令或其它信息。16個0和1可組成各種排列組合,通過線路變成電信號,讓計算機執行各種不同的操作。整理課件第二局部程序設計語言的開展簡史讓資金管理得更好!(2).匯編語言匯編語言(AssemblyLanguage)是面向機器的程序設計語言。在匯編語合中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。于是匯編語言亦稱為符號語言。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟件中語言處理系統軟件。匯編程序把匯編語言翻譯成機器語言的過程稱為匯編匯編指令的特點:OP(R,X)匯編語言的要點:存儲單元的命名;存儲單元的賦值;根本動作的重復;整理課件第二局部程序設計語言的開展簡史讓資金管理得更好!(3).C語言理論根底:程序=數據結構+算法支持結構化程序設計:防止goto,程序由3種根本結構組成:順序:分支:循環:整理課件第二局部程序設計語言的開展簡史讓資金管理得更好!(4).Java語言理論根底:程序=對象+關系支持面向對象程序設計:對象間的5種關系:繼承、組合、聚合、關聯、依賴面向對象程序架構的特點:程序由對象構成;對象與對象彼此間可能有5種關系;對象與所在環境的關系(容器和組件);采用設計模式可以適應對象將來的演變;整理課件第二局部程序設計語言的開展簡史讓資金管理得更好!2.語言對程序開發的影響力在應用程序開發過程中,對生產力影響的關鍵因素:(1)語言語言的抽象層次決定了生產力的根本;(2)框架框架封裝了共性問題的解決方案,防止了重復勞動;(3)工具自動化工具的使用可以大幅度提高效率;整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第三局部Java語言和Java平臺1.Java語言Java是一種簡單的,跨平臺的,面向對象的,分布式的,解釋的,健壯的,平安的,結構中立的,可移植的,性能優異的,多線程的,動態的語言。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第三局部Java語言和Java平臺2.Java平臺Java平臺由Java虛擬機和Java核心類所構成。它為純Java程序提供了統一的編程接口,而不管下層操作系統是什么。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第三局部Java語言和Java平臺JavaME平臺:J2ME是一種高度優化的Java運行環境,主要針對消費類電子設備的,例如蜂窩和可視、數字機頂盒、汽車導航系統等等。JavaSE平臺:J2SE定位在客戶端,主要用于桌面應用軟件的編程,包含那些構成Java語言核心的類。JavaEE平臺:J2EE是一套全然不同于傳統應用開發的技術架構,包含許多組件,主要可簡化且標準應用系統的開發與部署,進而提高可移植性、平安與再用價值。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式許多剛入門的Java開發人員能夠很好地理解Java編程語言的概念,但是他們往往需要經歷一段痛苦的時期才能成為專業的Java開發人員。這是因為大多數Java書籍只關注如何教會讀者使用Java語言、Java工具〔如Ant或者TestUnit〕或者一種與語言無關的軟件開發方法。這些書籍讓讀者自行向其他軟件開發人員學習技能和實踐經驗。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式1.什么是設計模式設計模式〔Designpattern〕是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。毫無疑問,設計模式于己于他人于系統都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟件工程的基石,如同大廈的一塊塊磚石一樣。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式2.經典的設計模式模式對于理解JavaAPI及與他人交流非常重要,因為大局部API是基于設計模式錘煉出來的。(1).面向對象設計的根本原那么從本質上講,設計就是做決定,知道哪些決定會提高軟件的質量,哪些決定會給以后的維護帶來問題,是任何一個設計人員在構思解決方案時都必須考慮的。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式設計的核心在于清楚的識別軟件系統中的各個組成局部,明確的知道它們將如何在一起協同工作來到達預期的需求目標。也就是說要認識到軟件系統的組成成分;理清這些成分彼此間的關系;明確它們和所在地根底環境的關系;把握它們將來有可能出現的演變趨勢。抽象、封裝、繼承、多態是面向對象設計中的4個根本概念。抽象來自于現實,是對現實世界(問題域)中的概念進行的建模過程。封裝在于強調概念與概念之間的邊界劃分。繼承創立了一個類系家族,強調了專門化和一般化這種關系。多態那么是在一個類系家族中允許類型替換,更確切的說可以理解為:但凡子類出現的地方,都可以用父類替代。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式深刻理解了這4個根本概念之后,構建高質量的解決方案也需要知曉一些設計原那么:A.受保護的變化:可以理解為隔離應用程序中的波動性。如果意識到某個成分可能會發生變化,那么就應該使用接口來將該成分隔離。因為接口允許改變實現類,但不會影響到現有的依賴性。其實,任何設計模式都遵守了這個原那么:將變化的和不變的別離開來。在理解任何一個模式的時候,就可以從兩個方面入手,變化的局部在哪里?固化的局部在哪里?往往固化的東西才是更具價值的。B.低耦合:這個原那么是為了保證對一段代碼的修改不會影響到另一段不相關的代碼。例如:一個UI界面的變化需要修改數據庫嗎?如果需要的話,那么該應用程序就很脆弱,其中任何一點小波動都會擴散到整個軟件系統。C.高內聚:將有關聯的東西緊緊地捆綁在一起,特別是那些全有全無,不可分解的局部。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式這些問題看起來都是些常識——因為它們本來就是!但是真理往往就蘊含于常識之中,不要假設所有人都懂得這些道理。此外,還有一句名言“切勿違背原那么,切勿迷戀技術〞。在軟件開發過程、產品和技術的迷宮中,這將成為幫助你走出困境的金玉良言。上述內容是軟件開發的核心原那么,而如何到達這些目標的手段那么是技術,不要混淆這兩個概念。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式(2).模式也是基于設計原那么的每一個模式都是一個或多個原那么的具體運用,只要理解了抽象、封裝、繼承、多態和一些根本原那么,就能很容易地理解模式為什么能降低軟件設計的復雜性。軟件設計的目標很重要,但是理想的目標和實際情況之間往往存在巨大的差距。模式消除了這種差距并實現了這些目標。所以掌握了模式,就能大大降低軟件設計的復雜度和難度。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式從簡單到復雜,逐步理解模式的運用和模式背后的動機。A.設計單個類單個類不構成一個設計模式,但它確實是一個設計。因為其設計簡單,所以不會出錯。設計過程的一分部是給一個對象分配職責。例子(略)新手經常會犯的錯誤:類常常會因為帶有幾個與該類表示的抽象無關的方法而變得過于龐大,隨著方法的增多,膨脹的更厲害,蛻化成面向過程的函數集合。這里違反的是高內聚原那么,會引起依賴性問題。解決的方法是將那些不屬于該類的方法“外包〞給其他類,但是這里的“不屬于〞是設計者的主觀判斷,這種主觀判斷的能力依托于對面向對象原那么的理解??梢哉f,設計者作出的任何決定都有可能是錯誤的。但是只要能根據有效地OO原那么加以調整,就不必擔憂——以后對問題理解更清晰后便可以進行重構。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式B.在類之間創立關聯在設計單個類的時候,我們將一些方法外包給了另一個類。那么這兩個類之間就有關系了。為了讓A類能調用B類的方法,可能會出現3中情況:1.B類的對象作為一個參數傳遞給A類對象:A.setB(B);2.A類負責在其內部構造B類對象并保存引用,new一個B類對象作為成員變量;3.B類對象從一個方法調用中傳回這3中方法決定了在關鍵關聯時一個對象與另一個對象共享的可見性。設計可能已經完成了,但是還有解決另一個設計原那么:低耦合。我們在指定關聯時,A和B之間已經建立起緊密的依賴關系。這種關系被限制為A類和B類。這樣很好,但是今后一旦某一方發生變化時,勢必涉及另一方。如何放開這種限制并解決這種變化問題呢?答案就是增加一個接口。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式C.創立接口接口就是類之間的契約和協定。在一個類系家族中,接口總是位于頂層,所以只依賴于接口,就可以操縱整個類系家族中的每一個類(PS:羊群和領頭羊)警告:添加到設計中的每一個部件都是需要管理的,為了在組件之間依賴性并隔離變化,接口可以很好的發揮作用,但是并不哪里都需要接口。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式D.創立繼承循環通過關聯和繼承將兩個類關聯,就可以創立樹和圖形結構,以充分擴展類系家族的層次結構。繼承關系可以使對象結構中的節點變成多態的。這好比文件系統中的文件和文件夾都具有相似的行為。設計模式中的組合模式,正是使用了繼承循環,以到達類型無關但功能相識。在UI體系中的容器和組件的概念就是這種設計模式的經典案例。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第四局部如何理解設計模式(3).一些重要的Java模式Gof模式分類:1.創立型:工廠:單例:2.結構型:適配器:復用實現裝飾器:復用接口組合模式:類系擴展(從樹到圖)3.行為型:責任鏈:過濾器鏈命令模式:請求命令封裝觀察者:事件監聽器整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第五局部開始邁進JavaEE1.什么是企業級應用程序一個企業系統是具備以下性質的系統:(1)共享某些或全部在應用中被使用的資源:這里普遍存在的例子就是所有的應用數據駐留的關系型數據庫。共享這些資源會增加額外的隱含復雜性:數據被共享是因為它需要同時對多個用戶可用。因此,系統必須支持平安地且快捷地并發用戶訪問。(2)規劃成為內部使用:這里的“內部〞指的是“大量生產的賣給最終用戶的軟件的對立物〞。當系統確實可以在公司與商業伙伴之間共享時,它可以用公司的特有知識、商業慣例和特殊需求來編寫。(3)必須在現有的架構內運行:在極特殊的情況下,公司才有可能已經擁有了一套適當的、系統必須能夠與之進行互操作的硬件和軟件。特別地,這意味著應用必須適應現有的數據庫模式〔而不是其它的方式〕。一個企業系統必須能夠適應它所存活的異構系統。整理課件第二局部研發工程管理流程〔規劃〕讓資金管理得更好!第五局部開始邁進JavaEE(4)將由內部IT員工部署并提供支持:對大多數公司來說,實際的“產品〞生產都超出了開發者的職責范圍。這是一件好事情——大多數開發者都會對因為他們開發的應用的故障,在凌晨時分被喚醒而感到不痛快。但是這同時也意味著系統的部署將要由他們之外的人手去完成,并且這還意味著負責數據中心的員工必須有某種途徑在未經歷編寫代碼環節的情況下,去監視、診斷和訂正問題。(5)需要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論