面向對象編程要點:算法
(1) OO 基礎: 抽象,封裝,多態,繼承。編程
(2) OO 原則:封裝變化; 多用組合,少用繼承; 針對接口編程,不針對實現編程。設計模式
(3) OO 模式:如,策略模式,定義了算法族,分別封裝起來,讓它們之間能夠互相替換,此模式讓算法
的變化獨立使用算法的客戶。設計
找出應用中可能須要變化之處,把它們獨立起來,不要和那些不須要的變化的代碼混在一塊兒。
針對接口編程,而不是針對實現編程。
「針對接口編程」真正的意思是「針對超類型(supertype)編程」。「接口」有多個含義,接口是一個「概念」,
也是一種Java的interface構造。另外,也能夠不涉及 Java interface 的狀況下,「針對接口編程」,
關鍵就在多態。code
多用組合,少用繼承
要依賴抽象,不要依賴具體類。
這個原則說明:不能讓高層組件依賴底層組件,並且,無論高層或低層組件,「二者」都應該依賴於抽象。
避免 OO 設計中違反依賴倒置原則:
(1)變量不能夠此有具體的引用。
(2)不要讓類生自具體類。
(3)不要覆蓋基類中的已實現的方法。對象
你都要注意它所交互的類有哪些,並注意它和這些類如何交互的。不要讓太多的類 耦合在一塊兒,省得 修改一部分, 會影響到其餘的部分。 調用如下範圍的方法:
(1) 對象自己
(2) 被當作方法的參數而傳遞進來的對象
(3) 此方法所建立或實例化的任何對象
(4) 對象的任何組件繼承
例:
public float getTemp(){
Thermoeter thermoeter = station.getTherometer();
return thermoeter.getTemperature();
}接口
修改:
public float getTemp(){
return station.getTemperature();//加入一個方法,減小一個類的依賴。
}
```get