設計模式 再學習

2021-09-27 12:30:28 字數 2005 閱讀 1034

理解

原則

構造器模式

function

user

(name , age, career)

const user =

newuser

(name, age, career)

簡單工廠模式

每個物件例項的變與不變

那麼使用工廠模式時,我們要做的就是去抽象不同建構函式(類)之間的變與不變

// user 的 work 根據傳進來的 career 決定

function

user

(name , age, career, work)

function

factory

(name, age, career)

抽象工廠模式

// 我不是讓你拿去new乙個例項的,我就是個定規矩的

// 在抽象工廠模式裡,樓上這個類就是我們食物鏈頂端最大的

// 頂層工廠不幹活 由具體工廠幹活

class

mobilephonefactory

// 提供硬體的介面

createhardware()

}// 具體工廠繼承自抽象工廠

class

fakesta***ctory

extends

mobilephonefactory

createhardware()

}// 定義作業系統這類產品的抽象產品類

classos}

// 定義具體作業系統的具體產品類

class

androidos

extendsos}

class

extendsos}

// 定義手機硬體這類產品的抽象產品類

class

hardware

}// 定義具體硬體的具體產品類

class

qualcommhardware

extends

hardware

}class

miware

extends

hardware

}// 這是我的手機

const myphone =

newfakesta***ctory()

// 讓它擁有作業系統

const myos = myphone.

createos()

// 讓它擁有硬體

const myhardware = myphone.

createhardware()

// 啟動作業系統(輸出『我會用安卓的方式去操作硬體』)

myos.

controlhardware()

// 喚醒硬體(輸出『我會用高通的方式去運轉』)

myhardware.

operatebyorder()

// 當有一天 需要乙個新機 投入市場

class

newsta***ctory

extends

mobilephonefactory

createhardware()

}// 這麼個操作,對原有的系統不會造成任何潛在影響 所謂的「對拓展開放,對修改封閉」就這麼圓滿實現了

工廠模式其實就是將建立物件的過程單獨封裝

它很像我們去餐館點菜:比如說點乙份西紅柿炒蛋,我們不用關心西紅柿怎麼切、怎麼打雞蛋這些菜品製作過程中的問題,我們只關心擺上桌那道菜。在工廠模式裡,我傳參這個過程就是點菜,工廠函式裡面運轉的邏輯就相當於炒菜的廚師和上桌的服務員做掉的那部分工作——這部分工作我們同樣不用關心,我們只要能拿到工廠交付給我們的例項結果就行了

概括 實現無腦傳參 就是為了爽

設計模式再學習(上)

理解設計模式前的前堤 1 模式的應用目標是把可維護性作為很重要指標的程式,像一次性的demo程式就不需要多高的可維護性 2 意識到並認可面向介面程式設計的好處,不認可請回看1 3 設計模式的本質是解耦,解耦的根本手段是分層,分的層越多,關係越不直觀 4 不用設計模式完全不影響實現需求,只是寫的 多了...

設計模式之單例模式 學習學習再學習

基本類 package com.patterns.singleton public class singleton public static singleton getsingleton return s public static void delsingleton 測試類 package co...

命令模式再學習

以前也寫過設計模式,總是羅列一些自己都看不懂的話。一直都認為要想對設計模式有很好的理解,離不了實踐的經驗和不斷的學習總結。這次是結合自己的理解並且本著通俗易懂的原則來寫,適合入門級學習的人。有這麼一種情況 在vs中。新建乙個cs專案,按下f5執行,出現了乙個窗體 又新建了乙個bs專案,同樣按下f5,...