日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

【HeadFirst设计模式】8.模板方法模式

發布時間:2025/4/9 asp.net 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【HeadFirst设计模式】8.模板方法模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模板方法

  定義:

    在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法使用得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟。

?

策略模式:

  定義一個算法家族,并讓這些算法可以互換。正因為每一個算法都被封裝起來了,所以客戶可以輕易地使用不同的算法。

  

?

好萊塢原則:

  別調用我們,我們會調用你。(依賴抽象)

  與依賴倒置原則:

    避免使用具體類,而多使用抽象

?

用模版方法來做排序(用非繼承的方式實現模板方法):

  在Arrays中提供了sort的靜態方法,sort要求傳進的是一個數組。

  這里的sort是一個模板方法,但是它并不是通過繼承來實現的,而是將該模樣方法中所封裝的算法的約束轉移至數組中。

  也就是說,被傳進來的數組中的對象必須實現Comparable接口,否則sort無法對數組進行排序。

  sort并不關心Comparable的具體行為,只要能提供sort排序所需要的接口即可。

?

要點:

  模板方法定義了算法的步驟,把這些步驟的實現延遲到子類。

  模板方法模式為我們的提供了一種代碼復用的重要技巧。

  模板方法的抽象類可以定義具體方法、抽象方法和鉤子。

  抽象方法由子類實現。

  鉤子是一種方法,它在抽象類中不做事,或者只做默認的事情,子類可以選擇要不要去覆蓋它。

  為了防止子類改變模板方法中的算法,我們可以將模板方法聲明為final。

  好萊塢原則告訴我們,將決策權放在高層模塊中,以便決定如何以及何時調用低層模塊。

  你將在真實世界代碼中看到模版方法模式的許多變體,不要期待它們全部都是一眼就可以被你認出的。

  策略模式和模板方法模式都封裝衍,一個用組合,一個用繼承。

  工廠方法是模式方法的一種特殊版本。

  

OO原則備忘:

  封裝變化

  多用組合,少用繼承

  針對接口編程,不針對實現編程

  為交互對象之間的松耦合設計而努力

  類應該對擴展開放,對修改封閉

  依賴抽象,不要依賴具體類

  只和朋友談

  別找我,我會找你

  

?

轉載于:https://www.cnblogs.com/laizhd/p/3631940.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【HeadFirst设计模式】8.模板方法模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。