學習物件導向編程的簡單途徑

來源:互聯網
上載者:User

 

最近要進行新員工培訓,主辦方要求我做一次物件導向思想的培訓。說實話,這個培訓我做過好幾年,發現還是很難做的。

第一、你面對的是新人。還沒有很多經驗,要談思想,很多時候都是虛幻的。

第二、本來這個思想就比較抽象,要讓大家能夠在培訓中有所收穫更是難上加難。

但是,需求就是命令!我還是得思考如何能講清楚這個問題。

正好今天在看一位新員工的代碼的時候,發現他寫了一個類,叫TCompare,我就問是做什麼用的,他告訴我是用來做檔案夾及檔案對比的。於是我覺得有必要說幾句。

我是這樣和他說的,

第一、如果你是做檔案夾對比,那麼TComare類是不是改成TFolderCompare更好?否則,別人很難從名字上看出你的類的職責。相反,還會讓讀者困惑。反過來將,你作為作者,也沒有把你的設計意圖表達出來。

第二、如果你做檔案夾對比,是不是還會進行檔案對比?(他說是的)那麼是不是應該有一個TFileCompare類?

第三、如果你有了兩個類,抽象一下介面,這個時候,再有一個TCompare類,也就沒有問題了。

上面的話有點囉嗦,但我感覺我看是抓住重點了,總結一下:

第一、物件導向編程從命名開始!類的職責定義非常重要!

第二、把指派給你的任務,做至少向下一層的物件導向分析。

第三、把業務分析清楚之後,再進行對象的抽象。

其中第二點我感覺特別重要,比如說吧:

讓你寫比較檔案夾的功能,不是就寫一個檔案夾比較的類,還要往下再看一層,比如檔案的比較?文字檔的比較、二進位檔案的比較?

或者說,讓你寫一個汽車類,你也不是唯寫一個TCar,至少要把動力系統、轉向系統、聯動系統等等都分析進來。如果唯寫一個TCar,那叫基於對象編程,如果,你還進行了下一層的分析,那就是物件導向編程。

我感覺我似乎應該抓到了,這就是物件導向思想學習的一條簡單途徑,那就是向下一層分析!

物件導向思想,是一個複雜的設計思想。找到路徑不難,找到一個簡單路徑確實非常難的事情。希望我能管中窺豹一把。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.