Java設(shè)計模式之抽象工廠模式淺析講解
1.介紹
當(dāng)系統(tǒng)準(zhǔn)備為用戶提供一系列相關(guān)對象,又不想讓用戶代碼和這些對象形成耦合時,就可以使用抽象工廠模式。
2.如何實現(xiàn)
1)抽象產(chǎn)品--Car
2)具體產(chǎn)品--BYDCar、TSLCar
3)抽象工廠Factory
4)具體工廠--BYDFactory、TSLFactory
3.代碼實現(xiàn)
/** * 抽象產(chǎn)品 */ public abstract class Car { public abstract String getName(); }
/** * 具體產(chǎn)品 */ public class BYDCar extends Car { String name; public BYDCar(String name){ this.name = name; } @Override public String getName() { return name; } }
/** * 抽象工廠 */ public abstract class CarFactoty { public abstract Car createCar(String name); }
/** * 具體工廠 */ public class BYDFactory extends CarFactoty { @Override public BYDCar createCar(String name) { return new BYDCar(name); } }
4.總結(jié)
1)抽象工廠模式可以為用戶創(chuàng)建一系列相關(guān)的對象,是用戶和這些類的對象解耦
2)使用抽象工廠模式可以方便的為用戶配置一些列對象。
3)在抽象工廠模式中,可以隨時增加“具體工廠”為用戶提供一組相關(guān)的對象。
如:是上面的例子中,如果用戶需要一特斯拉車,創(chuàng)建一個特斯拉對象和特斯拉工廠就能完成。
/** * 具體產(chǎn)品 */ public class TSLCar extends Car { String name; public TSLCar(String name){ this.name = name; } @Override public String getName() { return name; } }
/** * 具體工廠 */ public class TSLFactory extends CarFactoty { @Override public TSLCar createCar(String name) { return new TSLCar(name); } }
到此這篇關(guān)于Java設(shè)計模式之抽象工廠模式淺析講解的文章就介紹到這了,更多相關(guān)Java抽象工廠模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入淺出重構(gòu)Mybatis與Spring集成的SqlSessionFactoryBean(上)
通常來講,重構(gòu)是指不改變功能的情況下優(yōu)化代碼,但本文所說的重構(gòu)也包括了添加功能。這篇文章主要介紹了重構(gòu)Mybatis與Spring集成的SqlSessionFactoryBean(上)的相關(guān)資料,需要的朋友可以參考下2016-11-11Java?嵌入數(shù)據(jù)引擎從?SQLite?到?SPL詳解
這篇文章主要介紹了Java?嵌入數(shù)據(jù)引擎:從?SQLite?到?SPL,SQLite架構(gòu)簡單,其核心雖然是C語言開發(fā)的,但封裝得比較好,對外呈現(xiàn)為一個小巧的Jar包,能方便地集成在Java應(yīng)用中,本文給大家介紹的非常詳細(xì),需要的朋友參考下2022-07-07基于java實現(xiàn)websocket協(xié)議過程詳解
這篇文章主要介紹了基于java實現(xiàn)websocket協(xié)議過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09關(guān)于Java中的實體類要?implements?Serializable的原因分析
這篇文章主要介紹了Java中的實體類為什么要?implements?Serializable,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06SpringBoot?Aop實現(xiàn)接口請求次數(shù)統(tǒng)計
我們通過Spring AOP在每次執(zhí)行方法前或執(zhí)行方法后進行切面的處理,進而統(tǒng)計方法訪問的次數(shù)等功能,本文主要介紹了SpringBoot?Aop實現(xiàn)接口請求次數(shù)統(tǒng)計2024-02-02