官术网_书友最值得收藏!

第1章 工廠模式

設計模式是可復用的編程解決方案,在各種現實場景中被廣泛使用,并且已被證實能夠產生預期的結果。它們在程序員中廣為流傳,并與時俱進。設計模式的流行得益于Erich Gamma、Richard Helm、Ralph Johnson與John Vlissides合著的《設計模式:可復用面向對象軟件的基礎》(后面簡稱《設計模式》)一書。

四人組這本由Erich Gamma、Richard Helm、Ralph Johnson與John Vlissides合著的書又被簡稱為“四人組”書(還有一種更簡潔的形式——GoF書)。

以下是一段有關設計模式的描述,引自《設計模式》一書:

設計模式針對面向對象系統中重復出現的設計問題,提出一個通用的設計方案,并予以系統化的命名和動機解釋。它描述問題,提出解決方案,指出何時適用此方案,并說明方案的效果。它同時也提供實現代碼的提示與示例。該解決方案是用以解決該問題的一組通用的類和對象,經過定制和實現就可用來解決特定上下文中的問題。

面向對象編程中有多種設計模式可以使用,具體使用哪種,取決于問題類型或者解決方案類型。在《設計模式》中,“四人組”向我們呈現了23種設計模式,并分為3類:創建型結構型行為型

創建型設計模式是本書將要介紹的第一種類型。我們將通過本章、第2章和第3章來闡述。這些模式對應于對象創建過程的不同方面。它們的目的是在不便直接創建對象的時候(如在Python中使用__init__()函數),提供更好的替代方案。

查看https://docs.python.org/3/tutorial/classes.html以了解對象類和特殊的__init__()函數。Python用它們來創建新的類實例。

我們將從工廠設計模式入手,它是《設計模式》一書中的第一個創建型設計模式。在工廠模式中,客戶端(意為調用后文所提及對象的代碼)在不知道對象來源(即不知道該對象是用哪個類產生的)的情況下,要求創建一個對象。工廠模式背后的思想是簡化對象的創建過程。與客戶端直接使用類實例化來創建對象相比,使用一個中心函數來創建對象顯然更容易追蹤。通過將創建對象的代碼與使用對象的代碼解耦,工廠模式能夠降低維護應用的復雜度。

工廠模式通常有兩種形式:一種是工廠方法,它是一個方法(或以地道的Python術語來說,是一個函數),針對不同的輸入參數返回不同的對象;另一種是抽象工廠,它是一組用于創建一系列相關對象的工廠方法。

本章將討論:

? 工廠方法

? 抽象工廠

主站蜘蛛池模板: 邵阳县| 同德县| 贡嘎县| 潼南县| 小金县| 育儿| 扶余县| 绩溪县| 太湖县| 乌鲁木齐县| 开封市| 斗六市| 衡水市| 曲水县| 图片| 大庆市| 金华市| 金溪县| 文安县| 桃江县| 舟山市| 德阳市| 霍山县| 紫阳县| 成安县| 资溪县| 青川县| 中超| 光山县| 灵宝市| 永昌县| 瑞安市| 弥渡县| 邢台市| 聊城市| 习水县| 奉贤区| 灵宝市| 万源市| 紫阳县| 广元市|