Java工廠模式定義與用法實(shí)例分析
本文實(shí)例講述了Java工廠模式定義與用法。分享給大家供大家參考,具體如下:
一 代碼
// 抽象產(chǎn)品
interface Block {
public void print();
}
// 具體產(chǎn)品
class IBlock implements Block {
@Override
public void print() {
System.out.println("我是一個(gè)I形的方塊!");
}
}
// 具體產(chǎn)品
class LBlock implements Block {
@Override
public void print() {
System.out.println("我是一個(gè)L形的方塊!");
}
}
// 抽象工廠
interface Factory {
public Block getInstance();
}
// 具體工廠
class IBlockFactory implements Factory {
@Override
public Block getInstance() {
return new IBlock();
}
}
// 具體工廠
class LBlockFactory implements Factory {
@Override
public Block getInstance() {
return new LBlock();
}
}
// 客戶端
public class TestAdvancedFactory {
public static void main( String[] args ) {
// 創(chuàng)建一個(gè)生產(chǎn) I 形方塊的工廠
Factory iBlockFactory = new IBlockFactory();
// 用工廠生產(chǎn)一個(gè) I 形方塊
Block iBlock = iBlockFactory.getInstance();
iBlock.print();
// 創(chuàng)建一個(gè)生產(chǎn) L 形方塊的工廠
Factory LBlockFactory = new LBlockFactory();
// 用工廠生產(chǎn)一個(gè) L 形方塊
Block lBlock = LBlockFactory.getInstance();
lBlock.print();
}
}
二 運(yùn)行
我是一個(gè)I形的方塊!
我是一個(gè)L形的方塊!
三 類圖

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
- 深入理解java三種工廠模式
- Java設(shè)計(jì)模式之工廠模式(Factory模式)介紹
- java 工廠模式的講解及優(yōu)缺點(diǎn)的介紹
- java 單例模式和工廠模式實(shí)例詳解
- Java設(shè)計(jì)模式之靜態(tài)工廠模式詳解
- java 工廠模式的實(shí)例詳解
- Java設(shè)計(jì)模式之抽象工廠模式實(shí)例詳解
- 23種設(shè)計(jì)模式(2) java工廠模式
- java設(shè)計(jì)模式之簡單工廠模式
- Java設(shè)計(jì)模式之裝飾者模式詳解和代碼實(shí)例
- Java開發(fā)中的23種設(shè)計(jì)模式詳解(推薦)
相關(guān)文章
使用java實(shí)現(xiàn)http多線程斷點(diǎn)下載文件(一)
Java 多線程斷點(diǎn)下載文件基本原理:利用URLConnection獲取要下載文件的長度、頭部等相關(guān)信息,并設(shè)置響應(yīng)的頭部信息,本文將詳細(xì)介紹,需要了解更多的朋友可以參考下2012-12-12
spring boot設(shè)置過濾器、監(jiān)聽器及攔截器的方法
這篇文章主要給大家介紹了關(guān)于spring boot設(shè)置過濾器、監(jiān)聽器及攔截器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Mybatis-plus更新字段為null兩種常用方法及優(yōu)化
Mybatis Plus在進(jìn)行更新操作時(shí),默認(rèn)情況下是不能將字段更新為null的,如果要更新字段為null,需要進(jìn)行以下處理,這篇文章主要給大家介紹了關(guān)于Mybatis-plus更新字段為null的兩種常用方法及優(yōu)化,需要的朋友可以參考下2024-03-03
詳解如何使用Java8?Steam流對Map進(jìn)行排序
這篇文章主要給大家詳細(xì)介紹了如何使用Java8?Steam流對Map進(jìn)行排序,文中通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01
springboot中如何通過main方法調(diào)用service或dao
這篇文章主要介紹了springboot中如何通過main方法調(diào)用service或dao,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02

