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