爲何會出現面向對象分析方法?
由於現實世界太複雜多變,面向過程的分析方法沒法知足編程
面向過程?
採用面向過程必須瞭解整個過程,每一個步驟都有因果關係,每一個因果關係都構成了一個步驟,多個步驟就構成了一個系統,由於存在因果關係每一個步驟很難分離,很是緊密,當任何一步驟出現問題,將會影響到全部的系統設計模式
如:採用面向過程生產電腦,那麼他不會分CPU,主板和硬盤,它會按照電腦的工做流程一次成型。數組
面向過程的設計:最小的程序單元是函數,每一個負責完成某一個功能,用於接受輸入數據,函數對輸入數據進行處理而後輸出結果數據,模塊化
整個軟件系統是由一個個函數組成,其中做爲程序入口的函數稱之爲主函數,主函數一次調用其餘函數,普通函數之間能夠互相調用,函數
從而實現整個系統功能,面向過程最大的問題在於隨着系統的膨脹,面向過程將沒法應付,最終致使系統的崩潰.spa
面向過程的程序設計方式:是遇到一件事時,思考「我該怎麼作」,而後一步步實現的過程。
例如:公司打掃衛生(擦玻璃、掃地、拖地、倒垃圾等),按照面向過程的程序設計方式會思考「打掃衛生我該怎麼作,而後一件件的完成」,最後把公司衛生打掃乾淨了。面向過程的缺陷:是採用指定向下的設計模式,在設計階段就須要考慮每一個模塊應該分解爲哪些子模塊,每一個子模塊又細分爲更小的子模塊,如此類推,直到將模塊細化爲一個個函數。設計
存在的問題
1.設計不夠直觀,與人類思惟習慣不一致;
2.系統軟件適應性差,可拓展性差,維護性差;對象
面向對象?開發
在軟件工程上,面向對象能夠使工程更加模塊化,實現更低的耦合和更高的內聚工作流
面向對象對會將現實世界分割成不一樣的單元(對象),實現各個對象,若是完成某個功能,只須要將各個對象協做起來就能夠完成一種基於面向過程的新編程思想,顧名思義就是該思想是站在對象的角度思考問題,咱們把多個功能合理放到不一樣對象裏,強調的是具有某些功能的對象。具有某種功能的實體,稱爲對象。面向對象最小的程序單元是"類"。面向對象更加符合常規的思惟方式,穩定性好,可重用性強,易於開發大型軟件產品,有良好的可維護性
面向對象的程序設計方式,是遇到一件事時,思考「我該讓誰來作」,而後那個「誰」就是對象,他要怎麼作這件事是他本身的事,反正最後一羣對象協力能把事就好就好了。例如,公司打掃衛生(擦玻璃、掃地、拖地、倒垃圾等),按照面向對象的程序設計方式會思考「我該讓誰來作,如小明擦玻璃、讓小麗掃地、讓小郭拖地、讓小強倒垃圾等」,這裏的「小明、小麗、小郭、小強」就是對象,他們要打掃衛生,怎麼打掃是他們本身的事,反正最後一羣對象協力把公司衛生打掃乾淨了。