一 設計模式之簡單工廠模式(重要)(建立型)

2021-09-24 05:26:53 字數 1038 閱讀 4709

一、簡單工廠模式(重要)(建立型)

簡單工廠模式概述

簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(static factory method)模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項,簡單來說就是,通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。

建立乙個工廠類

主方法修改為

這就是乙個簡單工廠模式的基本使用了,但這樣的工廠類還不夠好,例子中只有兩個例項物件,但如果例子多了以後,工廠類就會產生很多很多的get方法。所以進行如下優化

還有另外一種方式

public class fruitfactory

}主方法修改為

這兩種方法各有各的優點,可根據實際情況自己選擇。

簡單工廠模式中包含的角色及其職責

工廠(creater)角色

簡單工廠模式的核心,它負責實現建立所有例項的內部邏輯。工廠類可以被外界直接呼叫,建立所需的產品物件(fruitfactory類)

抽象(product)角色

簡單工廠模式所建立的所有物件的父類,它負責描述所有例項所共有的公共介面。(fruit介面)

簡單設計模式的優缺點

優點:簡單工廠模式中,工廠類是整個模式的關鍵所在。它包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。使用者在建立時可以直接使用工廠類去建立所需的例項,而無需去了解這些物件是如何建立以及如何組織的,明確區分了各自的職責和權力,有利於整個軟體體系結構的優化。

缺點:很明顯簡單工廠模式的缺點也體現在其工廠類上,由於工廠類集中了所有例項的建立邏輯,容易違反graspr的高內聚的責任分配原則,另外,當系統中的具體產品類不斷增多時,可能會出現要求更改相應工廠類的情況,拓展性並不是很好。

使用場景

工廠類負責建立的物件比較少;

客戶只知道傳入工廠類的引數,對於如何建立物件(邏輯)不關心;

由於簡單工廠很容易違反高內聚責任分配原則,因此一般只在很簡單的情況下應用。

設計模式之簡單工廠模式 (一)

簡單工廠模式又稱之為靜態工廠方法,屬於建立型模式。在簡單工廠模式中,可以根據傳遞的引數不同,返回不同類的例項。簡單工廠模式定義了乙個類,這個類專門用於建立其他類的例項,這些被建立的類都有乙個共同的父類。1.factory 工廠角色。專門用於建立例項類的工廠,提供乙個方法,該方法根據傳遞的引數不同返回...

Php設計模式之工廠模式(一)簡單工廠模式

案例 黑棗轉殖公司是專門批量生產轉殖狗的一家企業。當轉殖出乙隻黑狗的實現 如下 實現 class doggener if color red class blackdog class reddog doggen new doggener doggen create black 分析ooa 軟體工程師...

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...