簡單工廠模式 工廠方法模式與抽象工廠模式總結

2021-08-21 00:04:48 字數 2893 閱讀 8779

之前一直沒有時間對工廠模式進行總結,這裡我梳理一下,我在網路上檢視資料,發現每個文章的思路都不一樣,這裡我對其進行總結。

1. 簡單工廠模式   

1. 1 簡單工廠模式的定義  

簡單工廠模式也被稱為靜態工廠模式;使用簡單工廠模式可以將產品的「消費」和生產完全分開,客戶端只需要知道自己需要什麼產品,如何來使用產品就可以了,具體的產品生產任務由具體的工廠類來實現。工廠類根據傳進來的引數生產具體的產品供消費者使用。這種模式使得更加利於擴充套件,當有新的產品加入時僅僅需要在工廠中加入新產品的構造就可以了。

1.2 簡單工廠模式的構成

1.3 簡單工廠模式的uml

1.4 **實現  

//抽象產品類

public abstract class prodcut

//繼承抽象類實現產品a類

public class producta extends product

}//繼承抽象類實現產品a類

public class productb extends product

}public class factory

//第一種寫法

//根據產品名稱生產產品

public product createproduct(string productname)

return product;

}//第二種寫法

//生產產品a

public producta createproducta()

//生產產品b

public productb createproductb()

}

1.5 簡單工廠模式的優點與缺點:

2. 工廠方法模式

2.1 工廠方法模式的定義  

工廠方法模式,又稱工廠模式、多型工廠模式和虛擬構造器模式,通過工廠父類定義負責建立產品的公共介面,子類負責生產具體物件。

2.2 解決的問題  

解決簡單工廠模式的弊端,實現父類定義公共實現介面,子類負責實現建立具體的物件,這樣就可以實現增加產品類時,不需要修改工廠類,而只需要修改工廠子類。

2.3 工廠方法模式的構成

2.4 工廠方法模式的uml

2.5 **實現  

//抽象產品類

public abstract class prodcut

//繼承抽象類實現產品a類

public class producta extends product

}//繼承抽象類實現產品a類

public class productb extends product

}//工廠抽象類

public abstract class factory

//具體工廠類factorya

public class factorya extends factory

}//具體工廠類factoryb

public class factoryb extends factory

}

2.6 工廠方法模式的優點與缺點3. 抽象工廠模式  

3.1 抽象工廠模式的定義        抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。這裡的抽象角色就是產品族。後面我會單獨講解產品族的概念。抽象工廠,非常適合解決兩個維度的組合產品的構造問題,取其中乙個維度作為產品族,另外乙個維度作為產品族中具體的多個產品。

3.2 產品族產品族是具有相同屬性的同型別產品;如寶馬車,寶馬1系,寶馬2系,都屬於寶馬;

3.3 解決的問題由於產品族可能會有很多產品,這樣的話如果按照工廠方法模式的寫法,那樣就需要每次新增乙個產品類和工廠類;這樣就會新增很多類檔案,這裡抽象工廠模式,其實就是將產品抽象成產品族,乙個產品可能具有不同屬性,這裡工廠類只需要產品屬性的共性抽象出來。

3.4 抽象工廠模式的構成

3.5 抽象工廠模式的uml

3.6 **實現

//抽象形狀類

public abstract class shape

//矩形類

public class retangle extends shape

}//圓形類

public class circle extends shape

}//抽象顏色類

public abstract class color

//紅色類

public class red extends color

}//白色類

public class white extends color

}//抽象工廠類

public abstract class shapefactory

//紅色的圓

public class redcirclefactory extends shapefactory

@overide

public color createcolor()

}//白色的圓

public class whitecirclefactory extends shapefactory

@overide

public color createcolor()

}

3.7 抽象工廠模式的優點與缺

簡單工廠模式 工廠方法模式 抽象工廠模式

簡單工廠模式 簡單工廠模式並不是23種設計模式中的,但是在實際的應用中卻經常使用。uml圖 簡單工廠模式的建立目標,所有建立的物件都是充當這個角色的某個具體類的例項。在這個模式中,工廠類是整個模式的關鍵所在。它包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。使用者在使用...

簡單工廠模式 工廠方法模式 抽象工廠模式

b 簡單工廠模式又稱靜態工廠模式 b 下面看 示例 public inte ce robot public class factory catch exception e return null public class test class robota implements robot clas...

設計模式 簡單工廠 工廠方法 抽象工廠方法模式

簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...