Java23種設計模式之工廠方法模式

2021-08-21 03:18:39 字數 1384 閱讀 9581

一、什麼是工廠方法模式

工廠方法模式同樣屬於類的建立型模式又被稱為多型工廠模式 。工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。

二、模式中包含的角色及其職責

1.抽象工廠(creator)角色

工廠方法模式的核心,任何工廠類都必須實現這個介面。

2.具體工廠( concrete  creator)角色

具體工廠類是抽象工廠的乙個實現,負責例項化產品物件。

3.抽象(product)角色

工廠方法模式所建立的所有物件的父類,它負責描述所有例項所共有的公共介面。

4.具體產品(concrete product)角色

工廠方法模式所建立的具體例項物件

三、工廠方法模式和簡單工廠模式比較

工廠方法模式與簡單工廠模式在結構上的不同不是很明顯。工廠方法類的核心是乙個抽象工廠類,而簡單工廠模式把核心放在乙個具體類上。

工廠方法模式之所以有乙個別名叫多型性工廠模式是因為具體工廠類都有共同的介面,或者有共同的抽象父類。當系統擴充套件需要新增新的產品物件時,僅僅需要新增乙個具體物件以及乙個具體工廠物件,原有工廠物件不需要進行任何修改,也不需要修改客戶端,很好的符合了「開放-封閉」原則。而簡單工廠模式在新增新產品物件後不得不修改工廠方法,擴充套件性不好。工廠方法模式退化後可以演變成簡單工廠模式。 

四,**實現

public inte***ce fruit
/*

* 採集

*/public void get()

}

public class banana implements fruit

}

public class pear implements fruit 

}

public inte***ce fruitfactory
public fruit getfruit()

}

public class bananafactory implements fruitfactory 

}

public class pea***ctory implements fruitfactory 

}

public class mainclass 

}

Java 23種設計模式之工廠方法模式

定義乙個用於建立物件的介面,讓子類決定例項化哪個類。工廠方法使乙個類的例項化延遲到其子類。public inte ce ileifeng1.產品一 學生 public class student implements ileifeng override public void wash overri...

java 23中設計模式之工廠方法模式

上一節說到了簡單工廠模式 通過例項化蘋果手機的案例,將簡單工廠模式做了簡單的介紹。我們可以將例項化蘋果手機這樣的複雜操作,放置到乙個單獨的工廠類中封裝起來。這樣我們需要例項化的時候直接呼叫工廠類的方法就可以了。但是。如果隨著業務的越來越複雜,手機的品種越來越多,我們這個工廠類需要維護的地方也會越來越...

Java 23種設計模式之簡單工廠模式

就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。簡單工廠模式的實質 是由乙個工廠類根據傳入的引數,動態決定應該建立哪乙個產品類 這些產品類繼承自乙個 父類或介面 的例項。public inte ce isender1.產品一 public class qqsender implement...