【Python】工廠模式和建造者模式的區別
最近在看《精通Python設計模式(Mastering Python Design patterns)》,
剛剛看完建造者模式,由於和看完工廠模式隔的時間有點久,再加上兩者本來就很像,有點分不清了。
所以,今天又看了看這兩者,區分一下,加強下記憶,以便安心看後邊的設計模式。
才疏學淺,有錯誤還請指正:
比較專案\模式名稱 | 工廠模式 | 建造者模式 |
---|---|---|
側重點 | 簡化物件建立 | 簡化複雜過程、複雜順序的物件的建立 |
物件建立的靈活度 | 預先定製,不靈活 | 預先定製較少,靈活度較高 |
實際例子 | 蘋果電腦 | 組裝電腦 |
實際例子說明:
比如,蘋果電腦的生產,用哪種型號的CPU、多大的記憶體、多大的硬碟、什麼作業系統等等,都定製好了,使用者參與的靈活度極低。
而組裝電腦的生產就靈活多了,哪種型號的CPU、多大的記憶體、多大的硬碟、什麼型號的顯示卡、什麼作業系統等等都可以自己說的算,靈活度較高。前者是工廠模式,後者是建造者模式。在建造者模式中,指揮者可以更多地參與建造的細節。
這裡的對於電腦的“生產”一詞可能不太妥當,不要過於糾結。本意在於說明兩種建造模式的區別。
The end.
相關推薦
【Python】工廠模式和建造者模式的區別
最近在看《精通Python設計模式(Mastering Python Design patterns)》, 剛剛看完建造者模式,由於和看完工廠模式隔的時間有點久,再加上兩者本來就很像,有點分不清了。 所以,今天又看了看這兩者,區分一下,加強下記憶,以便安心看後邊的設計模式
關於工廠模式和建造者模式的理解
通常情況下java裡面建立一個物件都是直接使用new關鍵字,但是隨著對java理解的深入逐漸會接觸到設計模式,設計模式中關於物件建立的模式主要有兩種:工廠模式和建造者模式,在這篇博文中來探討一下這三種建立物件方式的理解,不當之處,望大家指正。 一、使用new關鍵字直接建立 假設我們有一個
MyBatis原始碼分析之抽象工廠模式和建造者模式的應用
抽象工廠模式的應用 MyBatis原始碼的註釋不多,不過SqlSession倒是給了兩行註釋: /** * The primary Java interface for working with MyBatis. * Through this inter
JAVA設計模式之模板方法模式和建造者模式
一、前期回顧 上一篇《Java 設計模式之工廠方法模式與抽象工廠模式》介紹了三種工廠模式,分別是工廠方法模式,簡單工廠方法模式,抽象工廠模式,文中詳細根據實際場景介紹了三種模式的定義,實踐,最後總結了三種方式的區別,以及各個模式的適用場景。這一篇博文我們來學習下模板方法模式和建造者模式。
設計模式--裝飾者模式和建造者模式
oid @override 智商 定義 ont === 創建 == turn 1. 裝飾者模式 動態地給一個對象添加一些額外的職責。就增加功能來說, Decorator模式相比生成子類更為靈活,而且能解決繼承子類爆炸問題。 參與者 1.Component(被裝飾對象
設計模式之禪之建立類PK【工廠模式VS建造者模式】
設計模式之禪PK之建立類 建立類設計模式 建立類模式: 工廠方法模式 建造者模式 抽象工廠模式 單例模式 原型模式 建立者模式的功能: 提供物件的建立和管理職責 工廠方法模式、抽象工廠方法模
java設計模式之——建造者模式、原型模式(建立性)【讀書筆記】
一、建造者模式(生成器模式) 定義:將一個複雜物件的構建和它的表示分離開,使得同樣的構建過程可以得到不同的表示。 效果:採用建造者模式,使用者只需要選擇建造的型別就可以得到它們,而具體的建造過程和細節就不需要
Java設計模式, 單例模式,工廠模式,建造者模式和觀察者模式
1、單例模式 寫法: 懶漢式 /** * 懶漢模式 * 宣告一個靜態物件,並且在第一次呼叫getInstance 方法時進行初始化 * Created by Bill on 2017/12
設計模式:建造者模式及在jdk中的體現,建造者模式和工廠模式區別
# 0、背景 建造模式(Builder模式) 假如有一個需求:蓋房子,蓋房子過程是一致的:打樁、砌牆、封頂。但是房子是各式各樣的,最後蓋出來的房子可能是高樓或別墅。 根據直接的思路,不用設計模式思想,我們也許會: 1. 寫一個 CommonHouse 抽象類,然後裡面規定了打樁、砌牆、封頂三個方
【Python】創建和使用類
自動運行 over 多個實例 引用 bottom color ack 小寫 運行 面向對象編程是最有效的軟件編寫方法之一 創建Dog類 class Dog(): ‘‘‘一次模擬小狗的簡單測試‘‘‘ def __init__(self,name,age
【Python】使用類和實例
mil 三種 mod 特定 scribe car pad 指定 () Car類 class Car(): ‘‘‘模擬汽車‘‘‘ def __init__(self,name,model,year): ‘‘‘初始化汽車的屬性‘‘‘
(轉自精通Python設計模式)Python設計模式之創建型模式——2.建造者模式
生成 需要 結構 progress per 展示 有意 odi con 建造者模式將一個復雜對象的構造過程與其表現分離,這樣,同一個構造過程可用於創建多個不同的表現。 我們來看個實際的例子,假設我們想要創建一個HMTL頁面生成器,HTML頁面的基本結構(構造組件)
【Python】理解yield和generator(生成器)
Overview 本文整理自: [1] Python yield 使用淺析 —— 廖雪峰 [2] 深入理解yield —— Python中文開發者社群 如何生成斐波那契數列 斐波那契(Fibonacci)數列是一個非常簡單的遞迴數列,除第一個和第二個數外,任意一個數都可由前兩
【python】關於excel和shp的使用在matplotlib
關於excel和shp的使用在matplotlib 使用pandas 對excel進行簡單操作 使用cartopy 讀取shpfile 展示到matplotlib中 利用shpfile檔案中的一些欄位進行一些著色處理 #!/usr/bin/env pyt
【python】Pycharm安裝和使用
1. Pycharm安裝 去Pycharm官網或者直接輸入網址:jetbrains.com/pycharm/download,下載安裝包。 把Pycharm安裝包解壓到桌面上(這裡解壓路徑自己決定) cd /home/kiosk/Desktop/pycharm-co
創造類模式:工廠方法模式VS建造者模式。
工廠方法模式注重的是整體物件的建立方法,而建造者模式注重的是部件構件的過程,旨在通過一步一步地精確構造創建出一個複雜的物件。我們舉個簡單例子來說明兩者的差異,如要製造一個超人,如果使用工廠方法模式,直接產生出來的就是一個力大無窮、能夠飛翔、內褲外穿的超人;而如果使用建造者模式
對 工廠模式與建造者模式 的個人理解,以及結合運用
學習了一段時間設計模式,就想分享一下自己的理解, 歡迎大家多多指點,指出不足之處哈 個人理解,工廠模式用於處理 如何獲取例項物件 問題,建造者模式用於處理如何建造例項物件 問題(好像是廢話。。。)。兩者應該可以結合起來,下面將以商店售賣手機這場景來描述。 工廠模式: 簡單
【Python】基礎-繼承和派生
面向物件的程式設計帶來的主要好處之一是程式碼的複用,實現這種複用的方法之一是通過繼承機制。 python中解決程式碼複用的方式:繼承和組合。1 什麼是繼承 繼承是一種建立類的方法,在python中,一個類可以繼承來自一個或多個父類。原始類稱為基類或超類。class ParentCla
對 橋接模式 的個人理解,以及與 工廠方法模式、建造者模式 的結合運用
學習了一段時間設計模式,就想分享一下自己的理解, 歡迎大家多多指點,指出不足之處哈 橋接模式:以商店與手機為例子來描述,先從簡單的依賴關係說起 public interface Phone { /** 充電 **/ void charge(); /** 解鎖 *
設計模式之工廠模式、建造者模式
準備找工作那會看到了一本神書,《Head First 設計模式》,從此對設計模式有了很深的親睞,但是因為自己的專案經驗少的可憐,所以也基本沒有用過這些神一樣的方法,時間一長也就都忘乾淨了。現在工作了,師兄給了一個500M的程式碼,讓我吃透它。這期間真的有很多問題,很迷惑。忽