tags: OC 30 day
什麼是面向對象?
實現需求之一:
Ex:要如何將大象放入冰箱?
- 打開冰箱門。
- 把大象放進去。
- 把冰箱門關上。
有沒有更好的方式:
買電腦的需求方式?
- 根據自己的需求和預算確定買的電腦型號。
- 上網查資料確定電腦型號。
- 去apple專賣店。
- 成交。
- 回家。
但是以上的結果是不是有可以會有例外狀況呢?
如果我找一個懂電腦的高手帶我去買電腦,是不是可以省下很多事?
買電腦的兩種方式:
1. 每件事情都需要自己去做。(這樣不好。你不是專業的,所以你沒辦法做到專業。)
強調的是過程,強調的是步驟。我是主角,我是徹頭徹尾的執行者。
2. 找一個電腦高手,我只需要帶錢,其他事情電腦高手幫我做。
強調的是電腦高手,我只是一個揚眉吐氣的指揮者。
同一件事情我們有兩種不同的解決思路。
面向過程
如果解決一件事情的時候,每一件事情都是我們親自去一步步實現,那麼解決事情的思路叫做面向過程的解決思路。
面向對象
如果解決一件事情的時候,自己不親自做,而是找一個專門做這件事情的人幫助我們去做,這樣解決事情的思路,叫做面向對象的解決思路。
面向對象與面向過程的優缺點
C語言是一門面向過程的語言,有功能的概念卻沒有物件的概念。
OC是一們面向對向的語言。
面向過程解決問題的缺點:後期的維護修改不方便
面向對象解決問題的優點:後期的維護修改十分方便
如何以面向對象來設計程序呢?
當你遇到一個需求時,不要要親自去實現。
- 先看看有沒有現成的人是專門做這件事情的。 Ex:框架
- 如果沒有,就自己做一個擁有這個功能的人,造出的這個人可以多次使用。