Simple Factory模式(又稱Static Factory模式),一個Simple Factory生產成品,而對客戶端隱藏產品產生的細節。實作時定義一個產品介面(interface),並透過特定靜態方法來建立成品。
假設有一個音樂盒工廠,購買音樂盒的客人不用知道音樂盒是如何製作的,他只要知道如何播放音樂盒就可以了,以 UML 類別圖來表示以上的概念:
如上圖所示的,MusicBoxDemo代表了客戶的角色,它只依賴於IMusicBox介面,而不關心特定的實作,實際如何產生IMusicBox的實例由MusicBoxFactory完成,以一個簡單的程式來實現上面這個UML類別圖:
- IMusicBox.java
public interface IMusicBox { |
- PianoBox.java
public class PianoBox implements IMusicBox { |
- ViolinBox.java
public class ViolinBox implements IMusicBox { |
- MusicBoxFactory.java
public class MusicBoxFactory { |
- MusicBoxDemo.java
public class MusicBoxDemo { |
由於客戶端只依賴於IMusicBox介面,所以即使您日後改變了createMusicBox()中的實作方式,對客戶端是一點影響也沒有的。
來看看Simple Factory的類別結構:

0 评论:
发表评论