有時並不能恰當的把想要的功能抽象成類,便只能面向過程地實現(甚至沒有辦法整合為一個函數),那麼這時候該如何去做呢? 「先讓程式碼按預想中的運行,後期再重構」的習慣會對以後產生不利的影響嗎?
回覆內容:
沒有,因為根本不可能那麼早學會。先學會寫程式碼,再來弄面向對象。當然這並不是讓你不要用class,反正初學者隨便用,多用出屎來,以後對best practice就會理解的更深刻。
為了解決問題去OO是正確思維,為了OO去OO是病,沒治
不需要,首先不是所有問題都適合用物件導向解決的,然後對於初學者,鞏固基礎比較重要;如果你想學面向對象,不妨把之前做過的練習用面向對象方式解一下,找找感覺。
追蹤我的「Node快閃」知乎專欄,15分鐘上手一項Node/前端技能,提供所有原始碼。
並不是所有東西都要變成類別啊,物件導向只是一種方式而已。如果你真要為了oo而oo,一個小程式能寫得十分巨大,而且還沒什麼卵用,因為類太多冗餘了,依舊不好維護。
再說了,很多時候你只能到「寫出來讓程式碼能跑」這一步,重構還遠著呢,不少專案大概連重構的機會都輪不到。
劍法之道,需觀各家劍法,由繁入簡,從中抽離出最一般的法理,形成自己對劍法的理解。
而後需由簡入繁,將一般性的法理排列組合,形成自己的劍法。
程式設計之道亦如是
首先要有個對象,才能面向她寫
程式碼多寫,等你往後用到框架了(qt,wpf…),會念咒語了,然後學習這些好的框架的封裝思想,最起碼工廠模式你是能學會了。
我學c的時候每一個資料結構每一個演算法都自己寫,然後學了c++,java,c#以後發現原來這些東西可以有現成的而且用起來還那麼方便,然後就自然就學會面向對象了。
面向過程就面向過程的寫。
畢竟你是初學者,不懂怎麼面對對象。
這至少是可以被容忍的