在設計原則中有這樣一句話“我們應該針對接口編程,而不是正對實現編程”。但是我們還是在一直使用new關鍵字來創建一個對象,這不就是在針對實現編程么? 針對接口編程,可以隔離掉以后系統可能發生的一大堆改變。入股代碼是針對接口而寫,那么可以通過多態,它可以與任何新類實現 ...
一 問題 在前一章 設計模式讀書筆記 簡單工廠模式 中通過披薩的實例介紹了簡單工廠模式。在披薩實例中,如果我想根據地域的不同生產出不同口味的披薩,如紐約口味披薩,芝加哥口味披薩。如果利用簡單工廠模式,我們需要兩個不同的工廠,NYPizzaFactory ChicagoPizzaFactory。在該地域中有很多的披薩店,他們並不想依照總店的制作流程來生成披薩,而是希望采用他們自己的制作流程。這個時 ...
2013-05-26 00:09 1 4194 推薦指數:
在設計原則中有這樣一句話“我們應該針對接口編程,而不是正對實現編程”。但是我們還是在一直使用new關鍵字來創建一個對象,這不就是在針對實現編程么? 針對接口編程,可以隔離掉以后系統可能發生的一大堆改變。入股代碼是針對接口而寫,那么可以通過多態,它可以與任何新類實現 ...
在工廠方法模式中,我們使用一個工廠創建一個產品,也就是說一個具體的工廠對應一個具體的產品。但是有時候我們需要一個工廠能夠提供多個產品對象,而不是單一的對象,這個時候我們就需要使用抽象工廠模式。 在講解抽象工廠模式之前,我們需要厘清兩個概念: 產品 ...
1. 概述: 定義一個用於創建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到子類。 2. 模式中的角色 2.1 抽象工廠(Creator):這個抽象類(或接口)聲明一個創建對象的工廠方法,用來返回一個Product類型的對象。 2.2 具體工廠 ...
1.工廠方法模式定義 2.通用實現方式 工廠方式通用實現方式類圖如下: 其中Product定義了產品的共性,是對事物的抽象,Creator為抽象創建類,即抽象工廠,具體如何創建實例由實現類決定。代碼如下所示: Product類: Creator類: 具體的實現類 ...
之前寫了 設計模式系列目錄 今天說一下工廠方法模式: 定義了一個創建對象的接口,但由子類決定要實例化的類是哪一個。工廠方法讓類把實例化推遲到子類 所謂的決定並不是批模式允許子類本身在運行時做決定,而是指在編寫創建者類時,不需知道創建的產品是哪一下,選擇了使用 哪個子類,就決定了實際創建 ...
使用頻率:★★★★★ 一、什么是工廠方法 具體的工廠對象負責生產具體的產品對象; 二、補充說明 符合開放--封閉"原則(OCP),新增產品時,只需新增工廠的實現類、產品的實現類,不修改原來的代碼; 屬於23種GOF設計模式中的一種; 三、角色 抽象工廠 具體工廠 抽象 ...
目錄 1. 簡介 2. 示例1-計算器重構 2.1 背景說明 2.2 代碼重構 2.3 程序類圖 3. 示例2-模擬多功能日記記 ...
工廠模式屬於創建型設計模式,它提供了一種創建對象的最佳方式。 定義:定義了一個創建產品對象的工廠接口,將實際創建工作推遲到子類工廠當中。 問題描述:簡單工廠模式中,只要添加新的產品類,就得去修改工廠類,這樣做勢必違反了開閉原則。 解決方案:新增抽象工廠類,讓抽象產品對應抽象 ...