答案是肯定的,但你需要確定是模型的應用是否過度?我得承認,世界上有很多天才的程式設計師,他可以在一段**中包含6中設計模式,也可以不同模式而把程式設計做得很好。但我們的目標是追求有效的設計,而設計模式可以為這個目標提供某種參考模型、設計方法。我們不需要過於追捧gof的設計模式,但合理的運用設計模式,才是正確的抉擇。
其實在軟體設計人員中,唾棄設計模式的可能很少,盲目誇大設計模式功用的反而更多。言必談「模式」,並不能使你稱為優秀的架構師。真正的出色的設計師,懂得判斷運用模式的時機。
還有乙個問題是,很多才踏入軟體設計領域的人員,往往對設計模式很困惑。對於他們來說,由於沒有專案實際經驗,oo的思想也未曾建立,設計模式未免過於高深了。其實,即使非常有經驗的程式設計師,也不敢誇口對各種模式都能合理應用。
重構是必然的!
既然我們無法給出乙個完美的設計方案,因為客戶的需求總是變化的,重構也就成為必然。問題是,這樣沒有新增任何功能的重構,你是否願意為此付出精力、時間去完成。當客戶要求的deadline將要帶來的時候,你還認為你的重構工作有必要嗎?
有時候,軟體設計常常身不由己。然而,純從技術角度來看,重構非但必然,而且重要。既然我們都明白,複雜的未嘗就是好得,簡單的也不一定是容易的。要保持你的設計盡可能的簡單,可能還需要時時借組重構利器,來「改善你既有的**的設計」
對於重構,martin fowler給出了很多條款。這些條款並不是政治課本上教條,也不是「日月神教」的神奇咒語,念著它們就可以防身。這些條款確實很重要,但你需要的是學會他後,然後忘記他,就像張無忌的太極拳那樣,我不是故弄玄虛,事實上只有這樣,重構的精神才能完全融入到你的設計中。
ttd單元測試和其他
軟體的生命是什麼,是質量!而保證質量的惟一方法,就是測試。傳統的軟體開發過程,強調首先進行需求分析,再從需求分析中抽象出概要設計,進而做出詳細設計,然後編碼,最後才是測試以驗證**的正確性。而測試驅動開發(ttd)改變了編碼的過程,開發僅僅包括三方面的活動:編寫測試用例,編碼並進行測試,重構**以消除重複**使其更簡單、更靈活、更容易理解。通過測試來驅動開發,聽起來是那麼的離經叛道,然而實施起來,又是那麼合理、正確和簡單,前提是:我們不能在一開始就獲得正確的設計!ttd避免了對不完整需求造成的不成熟的設計,通過單元測試,保證了**的正確性與高質量;通過重構,使設計更加簡單、靈活。
單例模式需要釋放嗎
單例模式需要釋放嗎 1 這個問題我也想過,既然是單例,就是不管呼叫者什麼時候呼叫,你必須馬上給他返回乙個例項,所以,在整個程式的生命週期裡,他一直存在,所以不釋放也沒關係的,建議開始用arc,我也才開始用沒多久,感覺比之前的寫 爽多了 2 記得我還是個懵懂少年的時候查過這個問題.sof 告訴我 si...
Python 需要單例模式嗎
python真的需要去實現單例模式嗎?不需要。因為,python有模組 module 最pythonic的單例典範。模組在乙個應用程式中只有乙份,本身就是單例的,將你所需要的屬性和方法,直接暴露在模組中變成模組的全域性變數和方法即可!some module.py class singletoncla...
移動應用需要架構設計嗎
移動應用需要軟體架構設計嗎?這是個經常被提到的問題。回顧十幾年前為pc開發應用軟體的歷史。早期沒有架構設計,在可維護性和易擴充套件性上面都要付出相當大的成本。後來人們認識到了軟體架構的重要性,並使得軟體架構的概念逐漸成熟起來,在延長軟體的生命週期上發揮了巨大的作用。現在,幾乎所有的軟體都會經過架構設...