第一天 簡單工廠與策略模式

2022-03-12 07:17:23 字數 648 閱讀 6640

書摘:

物件導向的程式設計,並不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的物件的抽象集合才是類。

策略模式:定義了演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。

優點,(1)減少同類的各種演算法與使用演算法類之間的耦合(2)簡化單元測試,使每個演算法都有自己的類,可以通過自己的介面單獨測試。(3)對某種演算法的修改,或新增新的演算法,不影響現有演算法類。

在分析問題時,出現了需要在不同時間應用不同的業務規則,就可以考慮使用策略模式。此時可以與建立型的模式結合起來效果更好。

感悟:簡單工廠將類的物件(例項)的建立職責從客戶端和類自身中解耦出來,符合設計原則中的s(單一職責)。類自身完成自己的職責,而建立職責交給工廠類(物件)。

結合工作中遇到的問題:

系統中有乙個任務執行器,乙個任務可以是typea,typeb, typec三種型別中的乙個,執行器根據不同的任務選擇不同的執行邏輯(演算法)。

現有**是在執行器的類中定義3個不同的方法,在通過型別具體選擇呼叫哪個方法。

這時,如果需要新加一種任務的型別,就要在執行器的類中新加乙個方法,導致介面變化,而使客戶**需要重新編譯(c++)。

解決辦法:重構現有**,使用策略模式和簡單工廠。

設計模式第一天

軟體設計複雜的根本原因 客戶需求的變化 技術平台的變化 開發團隊的變化 市場環境的變化 如何解決複雜性 抽象例子 就畫圖形這個例子來說,在面向過程中,通過構造要畫的圖形的資料結構,在需要畫某種圖形時,呼叫畫該圖形的函式解決,而且還需要開闢不同圖形的向量記憶體 儲存圖形的個數,便於刪除 每當來乙個新型...

mysql 第一天 MySQL 系列第一天

mysql 系列第一天這篇文章是黑馬程式設計師 mysql 教程的筆記,好好學習哦。和 mysql 資料庫的互動 客戶端單向連線認證 連線伺服器,認證身份。mysql 資料庫屬於 c s 架構,所以開啟伺服器程式後,需要通過客戶端連線它。mysql 會自帶乙個客戶端程式,可以直接輸入賬號和密碼即可連...

上班第一天

上班第一天啊,沒有去上班。早上起的很早,快走的時候突然很不想去。最後決定不去了。早上肯定也沒有什麼事情,無非就是開會,改革之類的話,這種話年年都說,年年都是老樣子。小寶說今天他訂婚,早上還去上班,誰知道是真是假呢。今天是正月初八,30年前我爸和我媽結婚了。現在過年只剩下最重要的一件事情,陪爸媽坐坐,...