面向過程(POP)編程
Procedure Oriented Programming,面向過程是一種以過程爲中心的編程思想,分析出解決問題所需的步驟,而後用函數把這些步驟實現,並按順序調用。它是一種基礎的順序的思惟方式,面向對象方法的基礎實現中也包含面向過程思想。安全
面向對象(OOP)模塊化
Object Oriented Programming,面向對象是按人們認識客觀世界的系統思惟方式,採用基於對象(實體)的概念創建模型,模擬客觀世界分析、設計、實現軟件的辦法。經過面向對象的理念使計算機軟件系統能與現實世界中的系統一一對應。在軟件開發過程當中,宏觀上,用面向對象來把握事物間複雜的關係,分析系統。微觀上,仍然使用面向過程。」面向對象「是以「對象」爲中心的編程思想。函數
區別性能
面向過程 | 面向對象 | |
---|---|---|
特性 | 模塊化 流程化 | 抽象 封裝 繼承 多態 |
維護性、 複用性、 擴展性 | 弱 | 強 |
性能 | 強 | 弱 |
封裝是把過程和數據包圍起來,隱藏對象的屬性和實現細節,對數據的訪問只能經過已定義的對外公開接口。面向對象計算始於這個基本概念,即現實世界能夠被描繪成一系列徹底自治、封裝的對象,這些對象經過一個受保護的接口訪問其餘對象。類就是封裝數據和操做這些數據代碼的邏輯實體。在一個類的內部,某些屬性和方法是私有的,不能被外界所訪問。ui
經過這種方式,對象對內部數據進行了不一樣級別的訪問控制,就避免了程序中的無關部分的意外改變或錯誤改變了對象的私有部分,加強安全性和簡化編程,使得使用者沒必要了解具體的實現細節,而只是要經過外部接口,以特定的訪問權限來使用類的成員。設計
對象的一個新類能夠從現有的類中派生,這個過程稱爲類繼承。新類繼承了原始類的特性,新類稱爲原始類的派生類(子類),而原始類稱爲新類的基類(父類)。對象
經過使用繼承,能夠在不一樣的子類中屢次從新使用父類中的代碼,繼承方法和實例變量,使程序結構清晰,易於維護和修改,而子類能夠修改或增長新的方法使之更適合特殊的須要。繼承
多態是指一個程序中同名的方法共存的狀況,調用者只需使用同一個方法名,系統會根據不一樣狀況,調用相應的不一樣方法,從而實現不一樣的功能,多態機制使得不一樣內部結構的對象能夠共享相同的外部接口。多態性又被稱爲「一個名字,多個方法」。接口
多態存在的三個必要條件:繼承、重寫、父類引用指向子類對象
對一個類而言,應該僅有一個引發它變化的緣由。
軟件實體應該是能夠擴展的,可是不可修改。
子類型必須可以替換掉它們的基類型。
抽象不該依賴於細節,細節應該依賴於抽象
多個專用接口優於一個單一的通用接口。