# 工廠模式
## 什么是工廠模式
> 工廠模式,顧名思義就是類比工廠,用于生產的意思。在Java中這樣的一個工廠它生產的產品是對象。
## 工廠模式的特點
1. 工廠模式用于隱藏創建對象的細節;
2. 工廠模式核心:工廠類(Fcatory);
3. 工廠模式可細分為簡單工廠、工廠方法與抽象工廠;
工廠模式主要是通過一個“中間人”來簡化對象創建的過程,這個中間人就是工廠類,工廠類可根據使用行為細分為簡單工廠、工廠方法和抽象工廠,其目的都是為了隱藏創建類的細節,但設計理念有所不同。
## 工廠模式的實現
**簡單工廠模式**
~~~
public interface Product {
public void desc();
}
public class MobilePhone implements Product {
@Override
public void desc() {
System.out.println("生產手機");
}
}
public class Pad implements Product {
@Override
public void desc() {
System.out.println("生產平板");
}
}
public class Computer implements Product {
@Override
public void desc() {
System.out.println("生產電腦");
}
}
public class Factory {
public static Product produce(String pName) {
if("phone".equals(pName)) {
return new MobilePhone();
} else if("computer".equals(pName)) {
return new Computer();
} else if("pad".equals(pName)) {
return new Pad();
} else {
return null;
}
}
}
public class Demo {
public static void main(String[] args) {
Product pdt = Factory.produce("pad");
pdt.desc();
}
}
~~~
**工廠模式**
工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字符串出錯,則不能正確創建對象,而多個工廠方法模式是提供多個工廠方法,分別創建對象
~~~
public interface Product {
public void desc();
}
public class MobilePhone implements Product {
@Override
public void desc() {
System.out.println("生產手機");
}
}
public class Pad implements Product {
@Override
public void desc() {
System.out.println("生產平板");
}
}
public class Computer implements Product {
@Override
public void desc() {
System.out.println("生產電腦");
}
}
public class Factory {
//手機生產線
public static Product mobilePhone() {
return new MobilePhone();
}
//電腦生產線
public static Product computer() {
return new Computer();
}
//平板生產線
public static Product pad() {
return new Pad();
}
}
public class Demo {
public static void main(String[] args) {
Product pdt = Factory.computer();
pdt.desc();
}
}
~~~
**抽象工廠模式**
自學完成
- Java業余班教學管理
- JAVA基礎
- JAVA開發學習準備
- JAVA介紹
- 開發JAVA的準備
- JAVA的運行原理
- JDK配置
- 我的第一個JAVA程序
- 類與對象
- 基礎語言要素
- 數據類型
- Eclipse的安裝與使用
- 變量
- 直接量
- 運算符
- 流程控制
- 數組結構
- 面向對象
- 隱藏與封裝
- 深入構造器
- 類的繼承
- 多態
- 包裝類
- final修飾符
- 抽象類
- 接口
- 設計模式
- 單例模式
- 工廠模式
- 集合框架
- 集合排序
- 常用類學習
- 異常處理
- Java基礎綜合練習
- JAVA高級
- 泛型
- 多線程
- 線程的創建
- 線程的生命周期
- 線程同步
- 線程通信
- 輸入輸出流(I/O編程)
- File文件操作
- 字節流與字符流
- 數據庫
- 數據庫介紹
- 數據庫安裝
- SQL
- 表的基本操作
- 修改數據語句
- 數據檢索操作
- 多表數據操作
- 表結構設計
- 綜合應用
- JavaWeb