閱讀785 返回首頁    go 阿裏雲 go 技術社區[雲棲]


設計模式學習總結

       之前一直是麵向過程編程,前段時間因為某些原因需要更好的去理解一下麵向對象思想精髓,在別人的推薦下看了《大話設計模式》這本書。通過對29個模式的學習,不僅僅了解了設計模式是個什麼回事,也稍微加深了一點對麵向對象(Object-oriented)技術。麵向對象技術關注的是對象,對象的優點在於,可以定義自己負責的事物,作要求它自己的事情。對象應該自己負責自己,而且應該清楚地定義責任。它具有三大特征:封裝、多態、繼承。

       封裝(Encapsulation),也就是把客觀事物封裝成抽象的類,並且類可以把自己的數據和方法隻讓可信的類或者對象操作,對不可信的進行信息隱藏。封裝可以隱藏實現細節,使得代碼模塊化。

       繼承性(Inheritance)是指,在某種情況下,一個類會有“子類”。子類比原本的類(稱為父類)要更加具體化,也就是說子類會繼承父類的屬性和行為,並且也可包含它們自己的。

       多態(Polymorphism)是指由繼承而產生的相關的不同的類,其對象對同一消息會做出不同的響應。

       設計模式是麵向對象技術的發展,設計模式中的六大原則與麵向對象技術中的五大原則有著異曲同工之妙。

       它們分別是單一職責原則(SRP)開放-封閉原則(OCP)依賴倒轉原則(DIP)裏氏代換(LSP)迪米特法則(LOD)合成/聚合複用原則(CARP)。SRP是基本,OCP是目的,DIP為手段,LSP是繼承複用的基礎,ISP(InterfaceSegregation Principle 接口隔離原則,麵向對象五大原則之一)是實現LOD的手段之一,CARP是複用的原則 。

       29個具體的模式是六大原則的體現,同時它們也能分成創建型模式、結構型模式和行為型模式。

(詳細模式介紹大家可以參考一下這三篇博客:創建型設計模式結構型設計模式行為型設計模式

最後更新:2017-04-03 12:55:07

  上一篇:go android性能優化1
  下一篇:go openstack 命令行管理六 - 用戶管理 (備忘)