国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java設計模式之簡單工廠模式

2019-11-14 10:59:12
字體:
來源:轉載
供稿:網友

簡單工廠模式(Simple Factory Pattern)又叫靜態工廠方法模式(Static FactoryMethod Pattern),是通過專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。當你需要什么,只需要傳入一個正確的參數,就可以獲取你所需要的對象,而無須知道其創建細節。

簡單工廠模式其實不是一個設計模式,反而比較像是一種編程習慣。但由于經常被使用,所以我們先來學習。

用簡單工廠模式寫的烤魚店實例類圖如下: 烤魚店實例類圖 客人通過KaoYu類的orderFish()方法來點單,SimpleFishFactory類的orderFish()負責創建不同烤魚類型,Fish是烤魚父類,CaoYu,NianYu,JiYu,LuYu是具體實現。

Fish類代碼實現:

public class Fish { String name = "Unknow name"; public String getname(){ return name; }}

CaoYu類代碼實現:

public class CaoYu extends Fish{ public CaoYu(){ name = "草魚"; System.out.NianYu類代碼實現:

public class NianYu extends Fish{ public NianYu(){ name = "鯰魚"; System.out.println("烤"+name); }}

JiYu類代碼實現:

public class JiYu extends Fish{ public JiYu(){ name = "鯽魚"; System.out.println("烤"+name); }}

LuYu類代碼實現:

public class LuYu extends Fish{ public LuYu(){ name = "鱸魚"; System.out.println("烤"+name); }}

SimpleFishFactory類代碼實現:

public class SimpleFishFactory { public Fish createFish(String type){ if (type.equals("CaoYu")) { return new CaoYu(); }else if (type.equals("NianYu")) { return new NianYu(); }else if (type.equals("JiYu")) { return new JiYu(); }else if (type.equals("LuYu")) { return new LuYu(); } return null; }}

createFish方法根據傳進來的不同參數,返回一個對應的對象。

KaoYu類代碼實現:

public class KaoYu { SimpleFishFactory factory; public KaoYu(SimpleFishFactory factory){ this.factory = factory; } public Fish orderFish(String type){ Fish fish; fish = factory.createFish(type); System.out.println("我是一條烤"+fish.getname()); return fish; }}

KaoYu類傳進來一個SimpleFishFactory對象,然后orderFish根據type來返回一個對應的對象。

測試類KaoYuTest代碼實現:

public class KaoYuTest { public static void main(String[] args){ SimpleFishFactory factory = new SimpleFishFactory(); KaoYu kaoYu = new KaoYu(factory); kaoYu.orderFish("JiYu"); }}

執行結果:

烤鯽魚我是一條烤鯽魚
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀化市| 博罗县| 建德市| 浪卡子县| 恭城| 沂水县| 连山| 通化县| 日喀则市| 通城县| 古蔺县| 文山县| 错那县| 大关县| 屏山县| 襄樊市| 武强县| 随州市| 黎平县| 临高县| 永泰县| 彰化县| 杂多县| 九寨沟县| 栖霞市| 金溪县| 梁山县| 庐江县| 通许县| 西平县| 佛山市| 丰城市| 平陆县| 青海省| 巴东县| 华坪县| 洱源县| 湟源县| 乃东县| 剑阁县| 万宁市|