但假如被合并的代碼所在的類具有某種并列關(guān)系,甚至是同一個(gè)父類下的多個(gè)子類,或者同一接口的多個(gè)實(shí)現(xiàn)類,則我們可以采用繼承的方式解決代碼復(fù)用的問(wèn)題。具體做法是這樣的,第一步還是整理原有的代碼,通過(guò)比較,將需要重構(gòu)的多份原代碼中相同的與不同的代碼整理出來(lái)。在整理過(guò)程中,可以將不同的代碼,保留在各自的原程序中,而將相同的代碼抽取出來(lái)成為獨(dú)立的函數(shù)。這些函數(shù)就是我們后面需要抽象、合并、復(fù)用的代碼。下一步呢,就是運(yùn)用“抽取父類(ExtractSuperclass)”的
系統(tǒng) 2019-08-29 21:59:08 1680
說(shuō)了那么多理論,我們來(lái)看看怎樣使用抽取方法來(lái)重構(gòu)遺留系統(tǒng)。如前所述,重構(gòu)的過(guò)程首先是閱讀程序代碼,邊閱讀邊整理程序。將功能相對(duì)獨(dú)立的代碼段放在一起,在前面加上注釋。調(diào)整一些程序的順序,將相關(guān)的代碼盡量放在一起,但要保證程序執(zhí)行的結(jié)果不會(huì)發(fā)生改變。比較典型的,將變量的定義與使用變量的代碼放在一起。這個(gè)步驟比較實(shí)用,因?yàn)樵S多的遺留系統(tǒng),其代碼都有一個(gè)壞毛病,就是在程序開(kāi)始時(shí)定義一大堆變量,但要弄清這些變量都用來(lái)做什么,卻十分困難。邊讀邊調(diào)整,將變量的定義逐漸遷
系統(tǒng) 2019-08-29 21:59:02 1680
——對(duì)用例模型及其應(yīng)用的一次有益的探討前言:這是一次對(duì)用例模型的探討。怎樣建立用例模型,怎樣編寫(xiě)用例說(shuō)明,它與需求規(guī)格說(shuō)明書(shū)有什么區(qū)別,它能替代需求規(guī)格說(shuō)明書(shū)嗎?也許在這里可以找到你要的答案。進(jìn)入軟件業(yè)稍微久一點(diǎn)兒的人恐怕都不會(huì)陌生,軟件開(kāi)發(fā)的最初階段都是談需求、寫(xiě)需求規(guī)格說(shuō)明書(shū)。需求規(guī)格說(shuō)明書(shū)是與客戶最終確認(rèn)到紙上的,非常正式的公文。軟件開(kāi)發(fā)應(yīng)當(dāng)做什么,做成什么樣子,什么東西不做,項(xiàng)目范圍有多寬,需求規(guī)格說(shuō)明書(shū)都是白紙黑字寫(xiě)得清清楚楚,誰(shuí)都無(wú)法抵賴。所以
系統(tǒng) 2019-08-29 21:59:01 1680
今天是我在外包公司上班的第二天,由于項(xiàng)目還在籌劃中,沒(méi)有正式的開(kāi)始,所以這幾天比較清閑。說(shuō)實(shí)在的,自己其實(shí)很不看好外包公司,但由于一些原因還是選擇了外包公司,因此心里有點(diǎn)不踏實(shí)的感覺(jué)。聽(tīng)身邊的人說(shuō),外包工作很累很累。我沒(méi)有嘗試過(guò),所以說(shuō)不出來(lái)有多累,現(xiàn)在唯一做的就是熟悉以前的技術(shù),為后面受苦的日子做準(zhǔn)備。在這個(gè)公司以后的路到底怎么樣,我心里沒(méi)底,也許會(huì)比我期望的差的還遠(yuǎn),也許也沒(méi)有想象的那么壞。現(xiàn)在唯一做的就是,盡一切努力做好自己,期待。。。。。。走進(jìn)外包
系統(tǒng) 2019-08-29 21:58:34 1680
有兩個(gè)實(shí)Student和Course,他們之間的關(guān)系是多對(duì)多,在數(shù)據(jù)庫(kù)上,為了滿足3NF,會(huì)建立一個(gè)中間表Stu_Course來(lái)維護(hù)Student和Course之間的關(guān)系,在Hibernate中,則使用雙向多對(duì)多來(lái)體現(xiàn)這種結(jié)構(gòu)數(shù)據(jù)庫(kù)腳本createtablestu(idvarchar(32)primarykey,namevarchar(32),cardidvarchar(32),ageint);createtablecourse(idvarchar(32)
系統(tǒng) 2019-08-12 09:30:38 1680
SapphireCacheFrameworkAPISapphire是一個(gè)高并發(fā)、高緩存吞吐性、高性能的Java分布式內(nèi)存對(duì)象緩存系統(tǒng),其具有簡(jiǎn)單易學(xué)、方便實(shí)用等特點(diǎn)。它能夠用來(lái)存儲(chǔ)各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫(kù)檢索的結(jié)果等。簡(jiǎn)單的說(shuō)就是將數(shù)據(jù)源中的數(shù)據(jù)臨時(shí)存儲(chǔ)于內(nèi)存中,然后從內(nèi)存中讀取,從而大大提高讀取速度。Sapphire目前最新版本為1.1.7-beta,主要特性包含:1.敏捷快速;2.體系結(jié)構(gòu)中立、跨平臺(tái)支持;3.多種緩存管理容器實(shí)現(xiàn)
系統(tǒng) 2019-08-12 09:30:36 1680
/***轉(zhuǎn)載請(qǐng)注明作者longdickhttp://longdick.iteye.com**/相關(guān)帖子:1、人人都是領(lǐng)域?qū)<?用例圖2、人人都是領(lǐng)域?qū)<?活動(dòng)圖3、人人都是領(lǐng)域?qū)<?類圖4、人人都是領(lǐng)域?qū)<?順序圖5、人人都是領(lǐng)域?qū)<?類圖關(guān)系化6、人人都是領(lǐng)域?qū)<?類圖關(guān)系說(shuō)明需求階段用例圖完成以后,需要進(jìn)一步描述用例。由于每一個(gè)用例可能對(duì)應(yīng)幾個(gè)事件流,單從用例不能獲取有效的信息。這時(shí)候就要用到活動(dòng)圖了。活動(dòng)圖專門(mén)用來(lái)描述用例的事件流。我們借用上一節(jié)其中
系統(tǒng) 2019-08-12 09:30:24 1680
Web相關(guān)工具類您幾乎總是使用Spring框架開(kāi)發(fā)Web的應(yīng)用,Spring為Web應(yīng)用提供了很多有用的工具類,這些工具類可以給您的程序開(kāi)發(fā)帶來(lái)很多便利。在這節(jié)里,我們將逐一介紹這些工具類的使用方法。操作ServletAPI的工具類當(dāng)您在控制器、JSP頁(yè)面中想直接訪問(wèn)Spring容器時(shí),您必須事先獲取WebApplicationContext對(duì)象。Spring容器在啟動(dòng)時(shí)將WebApplicationContext保存在ServletContext的屬性列
系統(tǒng) 2019-08-12 09:30:22 1680
暴雪公司有個(gè)經(jīng)典的字符串的hash公式先提一個(gè)簡(jiǎn)單的問(wèn)題,假如有一個(gè)龐大的字符串?dāng)?shù)組,然后給你一個(gè)單獨(dú)的字符串,讓你從這個(gè)數(shù)組中查找是否有這個(gè)字符串并找到它,你會(huì)怎么做?有一個(gè)方法最簡(jiǎn)單,老老實(shí)實(shí)從頭查到尾,一個(gè)一個(gè)比較,直到找到為止,我想只要學(xué)過(guò)程序設(shè)計(jì)的人都能把這樣一個(gè)程序作出來(lái),但要是有程序員把這樣的程序交給用戶,我只能用無(wú)語(yǔ)來(lái)評(píng)價(jià),或許它真的能工作,但...也只能如此了。最合適的算法自然是使用HashTable(哈希表),先介紹介紹其中的基本知識(shí),
系統(tǒng) 2019-08-12 09:30:13 1680
第二篇《程序員必知8大排序3大查找(二)》《程序員必知8大排序3大查找(三)》每天都在叫囂自己會(huì)什么技術(shù),什么框架,可否意識(shí)到你每天都在被這些新名詞、新技術(shù)所迷惑,.NET、XML等等技術(shù)固然誘人,可是如果自己的基礎(chǔ)不扎實(shí),就像是在云里霧里行走一樣,只能看到眼前,不能看到更遠(yuǎn)的地方。這些新鮮的技術(shù)掩蓋了許多底層的原理,要想真正的學(xué)習(xí)技術(shù)還是走下云端,扎扎實(shí)實(shí)的把基礎(chǔ)知識(shí)學(xué)好,有了這些基礎(chǔ),要掌握那些新技術(shù)也就很容易了。要編寫(xiě)出優(yōu)秀的代碼同樣要扎實(shí)的基礎(chǔ),如
系統(tǒng) 2019-08-12 09:30:03 1680