這篇文章主要介紹“Java的簡單工廠模式怎么用”,在日常操作中,相信很多人在Java的簡單工廠模式怎么用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java的簡單工廠模式怎么用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
簡單工廠模式
簡單工廠模式是屬于創建型模式,是工廠模式的一種。 簡單工廠模式是由一個工廠對象決定創建出哪一 種產品類 的實例。簡單工廠模式是工廠模式家族中最簡單實用的模式
簡單工廠模式:定義了一個創建對象的類,由這個類來 封裝實例化對象的行為(代碼)
在軟件開發中,當我們會用到大量的創建某種、某類或者某批對象時,就會使用到工廠模式.
舉個例子
我家是農村的,我老爸老媽就是個農民種水果的,地里面有蘋果,梨,葡萄等,你們這些城里娃,想吃新鮮水果怎么辦呢?你們只能也只能去超市買了,這時候這個超市就相當于一個工廠了,客戶不需要關注水果是怎么樣長成的,只需要在超市買就行了
代碼實現
創建一個水果接口
/**
*
* @ClassName: Fruits
* @Description: TODO(我們都是農村的,自己種的水果,肯定很香,無公害,城里面水果不敢吃,大部分都是打農藥,催熟,膨大劑,美化粉)
* @author wangmeng
* @date 2021年5月11日
*/
public interface Fruits {
public void buildFruits();
}接口實現
蘋果地
public class Apple implements Fruits {
@Override
public void buildFruits() {
System.out.println("農村人套路少,老實,種的蘋果很脆很甜,沒有化學物質,賣的還便宜,付出收獲不成正比");
}
}梨
public class Pear implements Fruits {
@Override
public void buildFruits() {
System.out.println("農村人套路少,老實,自家地種的梨很脆很甜,沒有化學物質,而且還特便宜");
}
}超市工廠
// 超市工廠
public class SupermarketFactory {
//使用 getFruits 方法獲取水果類型的對象
// 想吃蘋果就給老板說,我要買帶諸葛家標簽牌子的蘋果,無公害,就對了
// 一個調用者想創建一個對象,只要知道其名稱就可以了。
public Fruits getFruits(String fruitsType){
if(fruitsType == null){
return null;
}
if(fruitsType.equalsIgnoreCase("Apple")){
return new Apple();
} else if(fruitsType.equalsIgnoreCase("Pear")){
return new Pear();
}
return null;
}
}使用超市工廠去買諸葛家標簽牌子的蘋果
public class Test {
public static void main(String[] args) {
// 使用該工廠,通過傳遞類型信息來獲取實體類的對象
SupermarketFactory supermarketFactory= new SupermarketFactory();
Fruits fruits=supermarketFactory.getFruits("Apple");
fruits.buildFruits();
Fruits fruits1=supermarketFactory.getFruits("Pear");
fruits1.buildFruits();
}
}輸出
農村人套路少,老實,種的蘋果很脆很甜,沒有化學物質 農村人套路少,老實,自家地種的梨很脆很甜,沒有化學物質,而且還特便宜
總結
應用實例:
1、您需要一輛汽車,可以直接從工廠里面提貨,而不用去管這輛汽車是怎么做出來的,以及這個汽車里面的具體實現。
2、Springboot項目,持久層 換數據庫只需換方言和驅動就可以。
優點:
1、一個調用者想創建一個對象,只要知道其名稱就可以了。
2、擴展性高,如果想增加一個產品,只要擴展一個工廠類就可以。
3、屏蔽產品的具體實現,調用者只關心產品的接口。
缺點:
每次增加一個產品時,都需要增加一個具體類和對象實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的復雜度,同時也增加了系統具體類的依賴。這并不是什么好事。
到此,關于“Java的簡單工廠模式怎么用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。