1.面向對象設計鼓勵將行爲分佈到細粒度的對象之中,若是一個對象承擔的職責過多,等於把這些職責耦合到了一塊兒編程
2.靜態語言在編譯的時候就已經肯定了變量的類型,而動態語言的變量類型是要到了運行時待變量被賦予某個值以後,纔會有變量類型安全
3.鴨子類型(dake typing):若是它走起路來像鴨子,叫起來也像鴨子,那麼它就是鴨子設計
4.把不變的地方隔離出來,把可變的部分封裝起來,這給予了咱們擴展程序的能力,程序看起來是可生長的,也是符合開放-封閉原則的,兼顧優雅與安全對象
5.多態是面向對象編程中最重要的技術編譯
6.「作什麼」和「怎麼去作」是能夠分開的面向對象編程
7.封裝:經過封裝的變化方式,把系統中穩定不變的部分和容易變化的部分隔離開來,在系統的演變過程當中,咱們只須要替換掉那些容易變化的部分變量
8.單例模式:保證一個類只有一個實例,而且提供一個訪問它的全局訪問節點擴展
9.策略模式:策略模式利用組合、委託、多態等技術和思想,能夠避免多重條件選擇語句,對開放封閉原則完美支持迭代器
10.迭代器模式是指提供一個方法順序訪問一個聚合對象中的各個元素,並且又不須要暴露該對象的內部表示程序