




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1.對象(1)從概念層面講,對象是某種擁有責任的抽象。(2)從規(guī)格層面講,對象是一系列可以被其他對象使用的公共接口。(3)從語言實現層面講,對象封裝了代碼和數據。2.軟件開發(fā)中的經典階段:需求、分析、設計、規(guī)范、實現、測試、部署、維護。3.設計7原則:開閉原則、里氏代換原則、依賴倒轉原則、合成/聚合復用原則、迪米特原則、接口隔離原則、單一職責原則。4.面向對象的方法學:UML(統(tǒng)一建模語言)、RUP(統(tǒng)一軟件開發(fā)過程)、XP(極限編程)。開發(fā)方法:Booch、Coad、OMT、UML、OOSE、Wirfs—Brock5.OOA——運用面向對象方法進行需求分析。OOD——運用面向對象方法進行系統(tǒng)設計。OOP——運用面向對象方法進行程序設計。6.OOA的基本任務:是運用面向對象的方法,對問題域和系統(tǒng)責任進行分析和理解,對其中的事物和它們之間的關系產生對的的結識,找出描述問題域及系統(tǒng)責任所需的類及對象,定義這些類和對象的屬性和操作,以及它們之間所形成的結構、靜態(tài)聯系和動態(tài)聯系。最終目的:是產生一個符合用戶需求,并可以直接反映問題域和系統(tǒng)責任的OOA模型及其具體說明。優(yōu)點:(1)加強了對問題域和系統(tǒng)責任的理解。(2)改善與分析有關的各類人員之間的交流。(3)對需求的變化具有較強的適應性。(4)支持軟件復用。OOA的三大策略是:屬性策略、方法策略、對象策略。7.(1)封裝:是指對象在其操作中隱藏屬性。它是一種信息隱蔽技術,用戶只能看見對象封裝界面上的信息,對象的內部實現對用戶是隱蔽的。封裝的目的是使對象的使用者和生產者分開,使對象的定義和實現分開。例如:要從同事那里借錢,在商店購買食物,就不會搶奪同事的錢包,大翻一通,看看里面是否有足夠的錢。而應當詢問他們是否可以借你一些錢,他們就會自己翻錢包。以表達圓的一個對象作為封裝的例子。圓的操作應能計算出半徑、直徑、周長和面積。假定選擇存儲直徑,要訪問直徑的程序員都會選擇存儲直徑屬性,而不是通過“獲取直徑”的操作來訪問。假如在軟件的后續(xù)版本中要存儲的是半徑,就必須找出系統(tǒng)中直接訪問直徑的所有代碼,并更正它們,有了封裝,就不會有問題。(2)繼承:可以指定類從父類中獲取一些特性,再添加它自己的獨特特性。繼承是類間的基本關系,它是基于層次關系的不同類共享數據和操作的一種機制。父類中定義了其所有子類的公共屬性和操作,在子類中除了定義自己特有的屬性和操作外,可以繼承父類的屬性和操作,也可以對父類中的操作重新定義其實現方法。例如:在面向對象中,我們可以把洗衣機、電冰箱、微波爐、收音機當作是家用電氣類的子類,也可以說家用電器類是這些類的超類。家用電器類具有的屬性OnOffSwitch和electricWire,具有turnOn()和turnOff()操作。因此,假如你知道某物是家用電器,那么就會立即知道它具有家用電器類的屬性和操作,這種關系就是繼承。每個家用電器類的子類都繼承了家用電器類的特性。同時,每個子類都增長了自己的屬性和操作。(3)多態(tài):是指同一操作作用于不同的對象上可以有不同的解釋,并產生不同的執(zhí)行結果。例如:“畫”操作,作用在“矩形”對象上,則在屏幕上畫一個矩形;作用在“圓”對象上,則在屏幕上畫一個圓。也就是說,相同操作的消息發(fā)送給不同對象時,每個對象將根據自己所屬類中定義的這個操作方法去執(zhí)行,從而產生不同的結果。6.RUP(統(tǒng)一軟件開發(fā)過程):是一個面向對象且基于網絡的程序開發(fā)方法論。RUP仿佛一個在線的指導者,它可認為所有方面和層次的程序開發(fā)提供指導方針,模版以及事例支持。RUP是理解性的軟件工程工具,它把開發(fā)中面向過程的方面和其他開發(fā)的組件整合在一個統(tǒng)一的框架內。RUP的本質:(1)RUP是風險驅動的、基于UseCase技術的、以架構為中心的、迭代的、可配置的軟件開發(fā)流程。(2)我們可以針對RUP所規(guī)定出的流程,進行客戶化定制,定制出適合自己組織的實用的軟件流程。因此RUP是一個流程定義平臺,是一個流程框架。RUP中有9個核心工作流,分為6個核心過程工作流(商業(yè)建模、需求、分析和設計、實現、測試、部署工作流)以及3個核心支持工作流(配置和變更管理、項目管理、環(huán)境工作流)。盡管6個核心過程工作流也許使人想起傳統(tǒng)瀑布模型中的幾個階段,但應注意迭代過程中的階段是完全不同的,這些工作流在整個生命周期中一次又一次被訪問。9個核心工作流在項目中輪流被使用,在每一次迭代中以不同的重點和強度反復。8.RUP是一個基于6個最佳開發(fā)實踐的流程定義產品:(1)迭代式開發(fā)(2)需求管理(3)基于組建的體系架構(4)可視化建模(5)連續(xù)的質量管理(6)配置管理。9.設計模式:是一套被反復使用、多數人知曉的、通過度類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被別人理解、保證代碼可靠性。毫無疑問,設計模式于己于別人于系統(tǒng)都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟件工程的基石,如同大廈的一塊塊磚石同樣。分類:創(chuàng)建型模式、行為型模式、結構型模式、Singleton模式。1.使用簡樸工廠模式設計計算器程序//Computer.javapublicclassComputer{publicstaticvoidmain(String[]args)throwsIOException{?StringstrA;?StringstrB; StringstrO;?try{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));? System.out.print("請輸入數據A:");? strA=br.readLine();? System.out.print("請選擇運算符號(+、-、*、/):"); ?strO=br.readLine();??System.out.print("請輸入數據B:"); ?strB=br.readLine(); StringstrResult="";???Operationoper=null;??IFactoryoperFactory=null;? if(strO.equals("+")){? ?operFactory=newAddFactory();? } if(strO.equals("-")){ ??operFactory=newSubFactory();? } ?oper=operFactory.creat(yī)eOperation();??oper.SetNumberA(Double.valueOf(strA).doubleValue());??oper.SetNumberB(Double.valueOf(strB).doubleValue());??strResult=Double.toString(oper.GetResult()); System.out.print(strResult);? }?catch(Exceptione){ }}}優(yōu)點:簡樸工廠模式就是由一個工廠類根據參數來決定創(chuàng)建出哪一種產品類的實例。專門負責將大量有共同接口的類實例化,并且不必事先知道每次是要實例化哪一個類的模式。2.策略模式:商場促銷publicclassContext{publicStrategystrat(yī)egy;publicContext(charname)throwsException{switch(name){case‘A’:strategy=newConcreteStrategyA();break;case‘B’:strategy=newConcreteStrategyB();break;case‘C’:strategy=newConcreteStrat(yī)egyC();break;default:thrownewException(“沒有此類輸入”);}}publicvoidcontextInterface(){strategy.algorithInterface();}}publicabstractclassStrategy{publicabstractvoidalgorithInterface();}publicclassConcreteStrategyAextendsStrategy{publicabstractvoidalgorithInterface(){system.out.println(“打折算法”);}}publicclassConcreteStrategyBextendsStrat(yī)egy{publicabstractvoidalgorithInterface(){system.out.println(“滿100送60算法”);}}publicclassConcreteStrategyCextendsStrategy{publicabstractvoidalgorithInterface(){system.out.println(“正常收費,不參與活動!”);}}publicclassClient{publicstaticvoidmain(String[]args)throwsException{Contextcontext;context=newContext(‘A’);context.contextInterface();}}ContextContext+contextInterface():voidStrategy+algorithInterface():voidconcreteStrategyA+algorithInterface():voidconcreteStrategyBconcreteStrategyC+algorithInterface():void+algorithInterface():void特點:(1)Strategy屬于設計模式中的對象行為型模式,重要是定義一系列的算法,把這些算法一個個封裝成單獨的類,使它們可互相替換。本模式使得算法可獨立于使用它的客戶而變化。(2)它提供了一種用多個行為中的一個行為來配置一個類的方法。(3)它需要使用一個算法的不同變體。(4)它以避免暴露復雜的、與算法相關的數據結構。(5)一個類定義了多種行為,并且這些行為在這個類的操作中以多個條件語句的形式出現。將相關的條件分支移入它們各自的Strategy類中以代替這些條件語句。3.裝飾模式舉Adapter中的打樁示例,在Adapter中有兩種類:方形樁、圓形樁,Adapter模式展示如何綜合使用這兩個類,在Decorator模式中,我們是要在打樁時增長一些額外功能,比如:挖坑,在樁上釘木板等,不關心如何使用兩個不相關的類。publicinterfaceWork{publicvoidinsert();}publicclassSquarePegimplementsWork{publicvoidinsert(){System.out.println("方形樁插入");}}publicclassDecoratorimplementsWork{privateWorkwork;
//額外增長的功能被打包在這個List中privateArrayListothers=newArrayList();//在構造器中使用組合new方式,引入Work對象;publicDecorator(Workwork){this.work=work;?others.add("挖坑");others.add("釘木板");
}publicvoidinsert(){newMethod();}publicvoidnewMethod(){otherMethod();?work.insert();}publicvoidotherMethod(){ListIteratorlistIterator=others.listIterator();
while(listIterator.hasNext())
{System.out.println(((String) ??(listIterator.next()))+"正在進行");}}特點:動態(tài)地給一個對象添加一些額外的職責。就增長功能來說,使用裝飾模式相比用生成子類方式達成功能的擴充顯得更為靈活。我們通常可以使用繼承來實現功能的拓展,假如這些需要拓展的功能種類很繁多,那么勢必生成很多子類,增長系統(tǒng)的復雜性,同時,使用繼承實現功能拓展,我們必須可預見這些拓展功能,這些功能是編譯時就擬定了,是靜態(tài)的。使用Decorator時這些功能需要由用戶動態(tài)決定加入的方式和時機.裝飾模式提供了“即插即用”的方法,在運營期間決定何時增長何種
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 60670-24:2024 EXV EN Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 24: Particular requirements for encl
- 2025-2030年中國鎂錳電池市場規(guī)模分析及發(fā)展建議研究報告
- 2025-2030年中國辣椒制品行業(yè)運行動態(tài)與投資戰(zhàn)略研究報告
- 2025-2030年中國蒿甲醚行業(yè)市場現狀調研與前景規(guī)模預測報告
- 2025-2030年中國自動高壓蒸汽滅菌器市場發(fā)展狀況及前景趨勢分析報告
- 2025-2030年中國育發(fā)水市場發(fā)展狀況及投資規(guī)劃研究報告
- 2025安全員-C證考試題庫
- 2025-2030年中國糯玉米汁飲料市場發(fā)展預測及前景調研分析報告
- 2025-2030年中國粉針類頭孢制劑行業(yè)需求分析與十三五規(guī)劃研究報告
- 2025-2030年中國移動電源車產業(yè)運行動態(tài)及前景趨勢預測報告
- 2023年高中音樂課件陽關三疊(琴歌)
- 胸腔閉式引流護理-中華護理學會團體標準
- 公司資產情況說明范文百度
- 醫(yī)療器械中有害殘留物檢驗技術
- 2015-2022年大慶醫(yī)學高等??茖W校高職單招語文/數學/英語筆試參考題庫含答案解析
- 產品過程特殊特性初始清單(示例)
- 兩篇古典英文版成語故事塞翁失馬
- 中國古代文學史 馬工程課件(中)13第五編 宋代文學 第一章 北宋初期文學
- GB/T 14643.4-2009工業(yè)循環(huán)冷卻水中菌藻的測定方法第4部分:土壤真菌的測定平皿計數法
- DL-T 5190.1-2022 電力建設施工技術規(guī)范 第1部分:土建結構工程(附條文說明)
- GA/T 914-2010聽力障礙的法醫(yī)學評定
評論
0/150
提交評論