發表文章

目前顯示的是有「工廠方法」標籤的文章

設計模式 - 工廠模式 (Creational Patterns - Factory Pattern)

圖片
前言 這篇文章會介紹三個最常使用的工廠模式方法,分別是 Simple Factory (簡單工廠) Abstract Factory (抽象工廠) Factory Method (工廠方法) 其中最容易讓人搞混的是,Abstract Factory和Factory Method,不過對我來說何必太過糾結於這兩個的概念,工廠模式最主要的核心原理就是將你創造物件的邏輯隱藏起來,不向客戶端顯示,我覺得只要知道這個概念就夠了,接下來會介紹這三個種類的工廠模式。 Factory Pattern 工廠模式 Simple Factory 簡單工廠 簡單工廠是工廠模式的第一步,也是工廠模式最基本的核心概念實踐,主要解決的問題是 將創建物件邏輯抽離 解偶Class的複雜度 Class Diagram 將封裝物件邏輯抽出寫成Simple Factory 產出父類別物件的物件 範例 在這個範例我們希望將戰士與魔法師遊戲創造英雄的邏輯抽出並且寫成靜態工廠,戰士與魔法師都是英雄並且’目前’只能進行攻擊,程式碼如下 Interface Hero public interface Hero { void attack(); } Magician.class public class Magician implements Hero { @Override public void attack() { System.out.println("Use magic to attack"); } } Warrior.class public class Warrior implements Hero { @Override public void attack() { System.out.println("Use sword to attack"); } } HeroFactory.class public class HeroFactory { public Hero makeHero(HeroType heroType) { if (heroType.equals(HeroType.MA...