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