說一說關於設計模式之間的聯絡與區別

2022-10-11 02:24:13 字數 485 閱讀 6598

敬請期待...

聯絡:都是包裝乙個物件。

區別:作用不同。裝飾者讓新的行為或責任加入類中,而無需修改現有的**。介面卡負責做介面的轉換,允許客戶使用新的庫和子集合,無需改變任何**。

聯絡:都是定義一些演算法,它們有不同的實現,客戶可以輕易使用不同的演算法。

區別:依賴程度不同。模板方法要定義乙個演算法的大綱,由它的子類定義其中某些步驟的內容;在演算法中的個別步驟可以有不同的實現細節,但是演算法的結構依然維持不變。策略通過物件組合的方式,讓客戶可以選擇演算法實現。

聯絡:類圖一樣。

區別:意圖不同。狀態模式將一群行為封裝在物件狀態中,context的行為隨時可委託到那些狀態中的乙個;隨著時間的流逝,當前狀態在狀態物件集合中游離改變,以反映出context內部的狀態。對策略模式而言,客戶通常主動指定context所要組合的策略物件是哪乙個。狀態模式一般是不用在context中放置許多條件判斷的替代方案。策略模式是除了繼承之外的一種彈性替代方案。

敬請期待...

說一說 r與 n

今天在用python讀取txt檔案的時候,遇到了乙個比較坑的問題,那就是 n 和 r 究竟有什麼區別?在計算機還沒有出現之前,人們設計了一種機器叫做電傳打字機,這種機器每秒鐘可以打10個字元。不過它有個問題,就是打完一行換行的時候,需要0.2s,正好可以列印兩個字元,如果這個時候有新的字元傳過來,那...

簡單的說一說mmap

mmap memory map,就是記憶體對映 簡單的說就是將檔案對映到使用者的位址空間中。這麼做有什麼好處呢?1.傳統檔案訪問方式是,首先用open系統呼叫開啟檔案,然後使用read,write等呼叫進行順序或者隨即的i o.這種方式是非常低效的,每一次i o操作都需要一次系統呼叫.而通過mmap...

說一說JS的IIFE

iife immediately invoked function expression,意為立即呼叫的函式表示式,也就是說,宣告函式的同時立即呼叫這個函式。對比一下,這是不採用iife時的函式宣告和函式呼叫 function foo foo 下面是iife形式的函式呼叫 functionfoo 函...