概念 1.一個(gè)抽象父類(lèi),N 個(gè)實(shí)現(xiàn)類(lèi) 2.一個(gè)工廠類(lèi), 負(fù)責(zé)生產(chǎn) (new 對(duì)象) 簡(jiǎn)單工廠模式的優(yōu)點(diǎn): 1.實(shí)現(xiàn)了對(duì)象的創(chuàng)建和使用的分離 2.記住主要的參數(shù)即可,減少使用者的記憶量 缺點(diǎn): 1.工廠類(lèi)的職責(zé)過(guò)重,一旦不能工作,系統(tǒng)將受到影響 2.增加了類(lèi)的個(gè)數(shù),復(fù)雜度和理解度增加 3.違反了"開(kāi)閉原則", 添加新的東東需要增加工廠邏輯,工廠會(huì)越來(lái)越復(fù)雜 具體代碼如下: //枚舉 Type 的類(lèi)型 public enum PhoneType { XiaoMI, IPhone, HuaWei } //繼承MonoBehaviour public class SingleFactory : MonoBehaviour { void Start () { Phone pe = PhoneFactory.CreatPhone(PhoneType.HuaWei); pe.Print(); } void Update () { } } // 一個(gè)抽象父類(lèi) public abstract class Phone { public abstract void Print(); } //小米實(shí)現(xiàn)類(lèi) public class XiaoMI : Phone { public override void Print() { Debug.Log("小米手機(jī)"); } } //蘋(píng)果手機(jī)實(shí)現(xiàn)類(lèi) public class IPhone : Phone { public override void Print() { Debug.Log("蘋(píng)果手機(jī)"); } } //華為手機(jī)實(shí)現(xiàn)類(lèi) public class HuaWei : Phone { public override void Print() { Debug.Log("華為手機(jī)"); } } //一個(gè)工廠類(lèi) public static class PhoneFactory { public static Phone CreatPhone(PhoneType type) { Phone phone = null; switch (type) { case PhoneType.XiaoMI: phone = new XiaoMI(); break; case PhoneType.IPhone: phone = new IPhone(); break; case PhoneType.HuaWei: phone = new HuaWei(); break; } return phone; } }
|
|
來(lái)自: 頭號(hào)碼甲 > 《待分類(lèi)》