同時,我們發現,過去只需gethour()就足夠,而現在卻需要getmonth()與getday()。隨著程式複雜度的提公升,我們適時進行了一次重構,將與時間相關的程式抽取到乙個新類dateutil中,就可以順利地改寫原有的時間問候語程式:
/**
* the utility of time
* @author fangang
*/public class dateutil
/*** @return the hour of day
*/public int gethour()
/*** @return the month of date
*/public int getmonth()
/*** @return the day of month
*/public int getday()
}/**
* the greeting about time.
* @author fangang
*/public class greetingabouttime
/*** @return the greeting about time
*/public string getgreeting()
}
最後,我們建立user表存放使用者資訊,建立userdao類為greetingtouser提供使用者資訊訪問的服務;我們將greetingrule表存放問候語庫,建立由greetingruledao介面及其實現類,為greetingabouttime提供乙個可擴充套件的、支援多語言的問候語庫(如圖)。所有這一切都是在現有基礎上,通過小步快跑的方式一步一步演變的。
小步快跑是一種逐步進化式的程式設計過程,它要求我們不要一次做太多的設計,不要想著一步到位完成開發。每次完成乙個小設計,實現乙個小需求,對原有系統進行乙個小修改,然後立即執行、測試、驗證。它是乙個十分新穎的概念,也許你一時半會兒還不能完全領悟,或者欣然接受,因為它太前衛了,與我們傳統的思維大相徑庭。然而,沒有關係,就像一部精彩的**需要慢慢揭開它神秘的面紗,你會慢慢領悟,終會接受。總之,活在當下,做現在的設計,將來的事情將來再考慮。(續)
遺留系統:it攻城獅永遠的痛
需求變更是罪惡之源嗎?
系統重構是個什麼玩意兒
我們應當改變我們的設計習慣
小步快跑是這樣玩的(上)
小步快跑是這樣玩的(下)
**復用應該這樣做(1)
**復用應該這樣做(2)
**復用應該這樣做(3)
做好**復用不簡單
談談我對「小步快跑」的理解
看到書中第三章的標題,已經隱隱知道作者要講述的情節。看完全章節後,果然不出所料,同時產生強烈地共鳴。下面從三個方面來闡述自己對於軟體開發小步快跑的理解。一 開發方式中的小步快跑 在軟體開發中,選用傳統瀑布模型的開發方式越來越突顯它的弊端。現在更易為專案組所認同的是敏捷迭代模型的開發方式。迭代的特點就...
北京是這樣的
北京是乙個三十歲沒結婚都不嫌晚的地方 北京是乙個你在馬路上大吼一聲卻無人理睬的地方 北京是乙個被人騙又去騙別人的地方 北京是乙個讓你時刻在受傷卻不得不強裝堅強的地方 北京是乙個靠打工仔打工妹建設起來,卻不讓他們享有社會福利的地方。北京是乙個初次見面第一句問你是 人,第二句問你來北京多久了的地方。北京...
css中的border還可以這樣玩
在看這篇文章之前你可能會覺得border只是簡單的繪製邊框,看了這篇文章,我相信你也會跟我一樣說一句 我靠,原來css中的border還可以這樣玩 這篇文章主要是很早以前看了別人用純css繪製三角形後自己的一些思路的整理,文中會介紹幾種小圖示的效果。是的你沒看錯,這裡是要做繪製乙個類似於雞蛋的效果。...