絞殺者模式的介紹

2021-10-09 21:39:56 字數 856 閱讀 1107

先看兩張圖

上面圖的介紹:

絞殺無花果樹絞殺無花果樹是一種非常奇怪的樹,它們不從地面開始生長。熱帶雨林重氣 候濕潤,一粒無花果樹種子落在一顆樹頂,如果條件合適,它就會在那兒發芽。 那顆樹就成了它的寄主。那麼,那些種子是怎樣到那兒的呢?從猴子、蝙蝠或鳥 兒嘴裡掉下來的。 由於發芽的小樹在大樹肩上,能得到更多的陽光,它長得很快,生出許多根 來纏繞著大樹。這些根很快長長到達地面,源源不斷地將水分和營養物質從絞殺 根送到高處。 根不斷向下生長,它牢牢地貼在寄主的樹幹上。絞殺就開始了。隨著時間的 推移,寄主要抵抗絞殺植物的根,才能長粗,而這些根切斷了寄主的營養輸送線, 過上幾年,寄主身上的礦物質和水將會枯竭,然後死亡。

上圖的介紹:

通過將特定的功能片斷逐漸取代為新的應用程式和服務,逐步遷移舊系統。 隨著舊系統的功能被替換,新系統最終將取代舊系統的所有功能,抑制舊系統並使其停用。

通過隱喻和對比, 我們可以理解絞殺者模式通常用在新舊系統的遷移過程中。 我們在舊系統中建立乙個絞殺者外層(類似扔了一粒無花果種子在舊系統中), 然後隨著新功能的引入(無花果發芽生長), 最終舊系統慢慢被替換成完整的新系統(宿主死亡)。

實際使用中遇到的情況:

這種絞殺者模式一般都是用在微服務的遷移改造, 也就是說如果系統中客戶端不變,我們穩定迭代後端服務還可以做。我們現在遇到的場景是新系統的前後端都大變化了且技術棧也發生變化, 但新系統又沒有做到完全替換舊系統, 這個模式就無法解決我們的問題

裝飾者模式介紹

裝飾者模式 動態的將新功能附加到物件上。在物件功能擴充套件方面,它比繼承更 有彈性。裝飾者模式就像打包乙個快遞。主體 component 比如 陶瓷 食物 包裝 decorator 比如 報紙 泡沫 1 建立快遞主體抽象類和具體快遞類 public abstract class delivery p...

設計模式 裝飾者模式介紹

考慮乙個咖啡店收費的問題 如何實現靈活的咖啡的 計算。咖啡店主要賣咖啡,但是後來為了滿足不同客戶的不同口味,只是純咖啡,顯得太單調了,就考慮增加不同的搭配,搭配不同的配料後會組成另一種飲品,這樣,品種豐富了,但隨之問題也來了,如何為不同新的品種計算新的準確的 兩種方案 第一種 可以採用繼承的方式,將...

設計模式介紹 觀察者模式(observer)

觀察者模式 又稱發布 訂閱模式 定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。常見的應用程式框架中有很多觀察者模式的應用,比如 mfc 的 doc view qt 中的訊號與槽 model view architecture,安卓中的廣播接收...