您好,登錄后才能下訂單哦!
小編給大家分享一下java如何實現抽象工廠模式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
抽象工廠又被稱為超級工廠
實例解釋:
一個人可以有一臺電腦和一臺手機,但是本人不去生成,本人只是去使用
有個超級工廠(AbstractFactory)抽象工廠,它下面有兩個代工廠(1.專門生產手機的工廠,2.專門生產電腦的工廠)
負責生產電腦的工廠,就是一個簡單工廠模式。
負責生產手機的工廠,也是一個簡單手機工廠模式。
代碼實現邏輯:
首先創建一個電腦接口--Computer,它只有draw()方法,它下面有兩個牌子,
Dell 實體類,實現了draw()
Lenvo 實體類,實現了draw()
然后創建一個手機接口---phone,它只有call()方法,它也有兩個牌子(實體類)
Mi 實體類
HuaWei實體類
然后定義一個AbstractFactory抽象工廠,它有兩個產品(手機,電腦)
手機工廠繼承抽象工廠,電腦工廠繼承抽象工廠
然后定義一個產品工廠創建抽象工廠
最后demo類使用產品工廠
代碼: 第一步 Computer,phone
public interface Computer { void draw();//畫圖功能 } public interface Phone { void call();//打電話功能 }
第二步:小米和華為實現Phone接口
public class Mi implements Phone{ @Override public void call() { System.out.println("小米手機打電話"); } } public class HuaWei implements Phone{ @Override public void call() { System.out.println("華為手機打電話"); } }
第三步:創建AbstractFactory抽象工廠,開放電腦和手機兩個接口
public abstract class AbstractFactory { public abstract Computer getComputer(String computer); public abstract Phone getPhone(String phone); }
第四:手機工廠繼承抽象工廠 ,電腦工廠繼承抽象工廠
public class PhoneFactory extends AbstractFactory{ @Override public Computer getComputer(String computer) { return null; } @Override public Phone getPhone(String phone) { if(phone.equalsIgnoreCase("Mi")){ return new Mi(); }else if(phone.equalsIgnoreCase("HuaWei")){ return new HuaWei(); } return null; } }
public class ComputerFactory extends AbstractFactory{ @Override public Computer getComputer(String computer) { if(computer == null){ return null; } if(computer.equalsIgnoreCase("Dell")){ return new Dell(); }else if(computer.equalsIgnoreCase("Lenvo")){ return new Lenvo(); } return null; } @Override public Phone getPhone(String phone) { return null; } }
第5:FactoryProducer 來獲取 AbstractFactory 對象
public class FactoryProducer { public static AbstractFactory getFactory(String choice){ if(choice.equalsIgnoreCase("Computer")){ return new ComputerFactory(); }else if(choice.equalsIgnoreCase("Phone")){ return new PhoneFactory(); } return null; } }
第6:demo使用產品工廠
public class AbstractDemo { public static void main(String[] args) { //獲取手機工廠 AbstractFactory phoneFactory = FactoryProducer.getFactory("Phone"); //獲取小米手機的對象 Phone mi = phoneFactory.getPhone("Mi"); //調用小米的方法 mi.call(); } }
以上是“java如何實現抽象工廠模式”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。