一直貧血而不自知
11 | 實戰一(上):業務開發常用的基於貧血模型的mvc架構違背oop嗎?
類之間的繼承結構穩定(不會輕易改變),繼承層次比較淺(比如,最多有兩層繼承關係),繼承關係不複雜,我們使用繼承。反之,系統越不穩定,繼承層次很深,繼承關係複雜,我們就盡量使用組合來替代繼承。
設計模式會固定使用繼承或者組合:比如,裝飾者模式、策略模式、組合模式等都使用了組合關係,而模板模式使用了繼承關係。
特殊場景必須使用繼承:例如:feignclient 是乙個外部類,我們沒有許可權去修改這部分**,但是我們希望能重寫這個類在執行時執行的 encode() 函式。這個時候,我們只能採用繼承來實現了。
業務簡單,貧血模型夠用,即使設計出領域模型也會比較單薄,跟貧血模型差不多,沒有太大意義。
充血模型的設計要比貧血模型更加有難度。
思維已固化,轉型有成本。
設計模式之美28 命令模式
定義 命令模式將請求 命令 封裝為乙個物件,這樣可以使用不同的請求引數化其他物件 將不同請求依賴注入到其他物件 並且能夠支援請求 命令 的排隊執行 記錄日誌 撤銷等 附加控制 功能。使用不多 命令模式用的最核心的實現手段,是將函式封裝成物件。但是,在大部分程式語言中,函式沒法兒作為引數傳遞給其他函式...
設計模式之美專欄學習
如果說 資料結構與演算法之美 是教你寫出高效的 那這個設計模式專欄就是教你寫出高質量的 寫 可以說是程式設計師天天要幹的事情,要是 都寫不好,最基本的看家本領都練不好,成天堆砌爛 寫 還有啥意思呢?那還幹啥程式設計師啊!寫出 能用 的人比比皆是,但是,並不是每個人都能寫出 好用 的 只會寫能用的 我...
設計模式之美 State(狀態)
索引 意圖 允許乙個物件在其內部狀態改變時改變它的行為。物件看起來似乎修改了它的類。結構 參與者 context state concretestate 在以下情況下可以使用 state 模式 效果 相關模式 實現 實現方式 一 由 concretestate 指定它的後繼 state。state ...