1. 程式人生 > >技術雜記(五)

技術雜記(五)

答案 this指針 定義 面向對象 繼承 聲明 代碼 code 實體

2018年10月27日

六種程序設計思想(以C++為例)

1. 結構化思想
    struct包裹數據,數據對應的操作函數單獨定義聲明。
2. 基於對象的思想
    將數據和對應的操作函數進行組合(也可以理解為簡單的封裝,畢竟沒有訪問控制等安全措施)。
3. 面向對象的思想
    引入類、this指針、封裝、繼承、多態等概念,形成有層次的結構。
4. 基於接口的思想
    定義抽象的接口類,即類中僅實現相關接口聲明,不進行實體定義。然後針對特殊情況,單獨編寫一個繼承接口的新類。
5. 基於接口的思想的模板實現
    和4類似,不過接口類是一個模板。
6. 面向方面的思想
    和5類似,只不過針對每一種特殊情況,編寫一個新的類,這個新的類通過接口類的模板入口塞進去,即接口類通過模板來繼承每一種特殊類。
  • 結構化思想實現的加法器,沒有做到封裝,也不能容納變化點;
  • 基於對象的方法進了一步,它所實現的加法器做到了封裝,但沒有容納變化點;
  • 面向對象方法所實現的加法器,則做到了上述兩點;
  • 基於接口的設計方法,則更進了一步,不僅實現了變化點的封裝,還降低了代碼的耦合度,提高了擴展性。
  • 兩種基於模板的加法器實現。它們與前面提到的幾種方法孰優孰劣,則是仁者見仁智者見智了,不同的場景可能會有不同的答案。

參考資料
李林老師的《Linux高級編程》的PPT第一講

技術雜記(五)