重構(refactoring)就是在不改變軟體現有功能的基礎上,通過調整程式**改善軟體的質量、效能,使其程式的設計模式和架構更趨合理,提高軟體的擴充套件性和維護性。
[color=red] 重構的必要性:[/color]重構的重要性要從軟體的生命週期說起。軟體不同與普通的產品,他是一種智力產品,沒有具體的物理形態。乙個軟體不可能發生物理損耗,介面上的按鈕永遠不會因為按動次數太多而發生接觸不良。那麼為什麼乙個軟體製造出來以後,卻不能永遠使用下去呢?
對軟體的生命造成威脅的因素只有乙個:需求的變更。乙個軟體總是為解決某種特定的需求而產生,時代在發展,客戶的業務也在發生變化。有的需求相對穩定一些,有的需求變化的比較劇烈,還有的需求已經消失了,或者轉化成了別的需求。在這種情況下,軟體必須相應的改變。
考慮到成本和時間等因素,當然不是所有的需求變化都要在軟體系統中實現。但是總的說來,軟體要適應需求的變化,以保持自己的生命力。
這就產生了一種糟糕的現象:軟體產品最初製造出來,是經過精心的設計,具有良好架構的。但是隨著時間的發展、需求的變化,必須不斷的修改原有的功能、追加新的功能,還免不了有一些缺陷需要修改。為了實現變更,不可避免的要違反最初的設計構架。經過一段時間以後,軟體的架構就千瘡百孔了。bug越來越多,越來越難維護,新的需求越來越難實現,軟體的構架對新的需求漸漸的失去支援能力,而是成為一種制約。最後新需求的開發成本會超過開發乙個新的軟體的成本,這就是這個軟體系統的生命走到盡頭的時候。
重構就能夠最大限度的避免這樣一種現象。系統發展到一定階段後,使用重構的方式,不改變系統的外部功能,只對內部的結構進行重新的整理。通過重構,不斷的調整系統的結構,使系統對於需求的變更始終具有較強的適應能力。
[color=red]通過重構可以達到以下的目標:[/color]
1.持續偏糾和改進軟體設計
2.使**更易為人所理解
3.幫助發現隱藏的**缺陷
4.有助於提高程式設計效率
[color=red]何時著手重構:[/color]
1.**中存在重複的**
2.過大的類和過長的方法
3.牽一毛而需要動全身的修改
4.類之間需要過多的通訊
5.過度耦合的資訊鏈
6.各立山頭幹革命
7.不完美的設計
8.缺少必要的注釋
多型的概念和作用
多型是物件導向的重要特性,簡單點說 乙個介面,多種實現 就是同一種事物表現出的多種形態。程式設計其實就是乙個將具體世界進行抽象化的過程,多型就是抽象化的一種體現,把一系列具體事物的共同點抽象出來,再通過這個抽象的事物,與不同的具體事物進行對話。對不同類的物件發出相同的訊息將會有不同的行為。比如,你的...
MFC的概念和作用
一 全程 microsoft foundation class library 我們稱 微軟基礎類庫 從硬碟的存在形式上來說,mfc就是乙個庫 動 靜態 從原理上說,mfc還是乙個程式的框架 作用 基於框架程序開發,提高工作效率,減少開發周期,節約開發成本 二 重要標頭檔案 afx.h 包含了mfc...
閘道器的概念和作用
閘道器的英文名稱 gateway,又叫做網間聯結器 協議轉換器。閘道器是在採用不同體系結構或協議的網路之間進行互通時,用於提供協議轉換 路由選擇 資料交換等網路相容功能的設施。閘道器在傳輸層上以實現網路互連,是最複雜的網路互連裝置,僅用於兩個高層協議不同的網路互連。閘道器既可以用於廣域網互連,也可以...