一、概念
對象:人們要研究的任何事物,包括具體的事物和抽象的規則、計劃等
對象的狀態和行爲:
狀態,用數據值描述對象的狀態
操作,用於改變對象狀態,對象及其操作就是對象的行爲
類:
具有相同特性和行爲的對象的抽象
類的屬性,就是對象狀態的抽象,用數據結構和描述
類的操作,就是對象行爲的抽象,用操作名和方法和描述
類的結構:
一般-具體結構關係,"is a"關係,稱爲分類結構
整體-部分結構關係,“has a"關係,稱爲組裝結構
消息和方法:
消息,對象之間進行通信的結構,至少包括說明接受消息的對象名、發送給該對象的消息名
方法,類中操作的實現過程,包括方法名、返回值、參數和方法體
二、三大特性
封裝:
把客觀的事物封裝成抽象的類,並且類可以把自己的數據和方法只讓可信的類和對象操作,對不可信者進行信息隱藏
繼承:
可以讓某個類型的對象獲得另一個類型的對象的屬性的方法。實現繼承可以通過繼承(Inheritance)和組合(Composition)來實現。繼承概念的實現方式有兩種:實現繼承和接口繼承。
多態:
一個類實例的相同方法在不同情形下有不同的表現形式。
三、設計模式
概念:設計模式是一套被反覆使用、多數人知曉的、經過分類編目的代碼設計經驗的總結。
設計框架:
可複用的面向對象軟件系統一般分爲兩類:應用程序工具箱和框架。
設計原則:
1.開閉原則:模塊應對擴展開發,而對修改關閉。
2.里氏代換原則:如果調用的是父類,那麼換成子類也完全可以運行。
3.依賴倒轉原則:抽象不應該依賴於細節,細節應當依賴於抽象,即針對接口編程而非針對實現編程。
4.接口隔離原則:每個接口應該是一種角色。
5.最少知識原則:每個對象對其他對象有儘可能少的瞭解。
設計模式分爲三類(23種):
創建型:單例模式、抽象工廠模式、建造者模式、工廠模式、原型模式
結構型:適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式
行爲模式:模板方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解釋器模式、狀態模式、策略模式、職責鏈模式、訪問者模式。