03 工厂模式
using UnityEngine; /// <summary> /// 功能说明:简单工厂模式 /// </summary> public class DPFactory:MonoBehaviour { private void Start() { FactoryIPhone8 factoryIPhone8 = new FactoryIPhone8(); factoryIPhone8.CreateIPhone(); FactoryIPhoneX factoryIPhoneX = new FactoryIPhoneX(); factoryIPhoneX.CreateIPhone(); } } //工厂模式分为简单工厂模式,工厂方法模式,抽象工厂模式 //简单工厂模式 public class IPhone { public IPhone() { } } public class IPhone8 : IPhone { public IPhone8() { Debug.Log("创建IPhone8"); } } public class IPhoneX : IPhone { public IPhoneX() { Debug.Log("创建IPhoneX"); } } public interface IFactory { IPhone CreateIPhone(); } public class FactoryIPhone8 : IFactory { public IPhone CreateIPhone() { return new IPhone8(); } } public class FactoryIPhoneX : IFactory { public IPhone CreateIPhone() { return new IPhoneX(); } }
using UnityEngine; /// <summary> /// 功能说明:抽象工厂模式 /// </summary> public class DPFactory:MonoBehaviour { private void Start() { FactoryIPhone8 factoryIPhone8 = new FactoryIPhone8(); factoryIPhone8.CreateIPhone(); factoryIPhone8.CreateIPhoneCharger(); FactoryIPhoneX factoryIPhoneX = new FactoryIPhoneX(); factoryIPhoneX.CreateIPhone(); factoryIPhoneX.CreateIPhoneCharger(); } } //工厂模式分为简单工厂模式,工厂方法模式,抽象工厂模式 //抽象工厂模式 //手机 public interface IPhone { } public class IPhone8 : IPhone { public IPhone8() { Debug.Log("创建IPhone8"); } } public class IPhoneX : IPhone { public IPhoneX() { Debug.Log("创建IPhoneX"); } } //充电器 public interface IPhoneCharger { } public class IPhone8Charger:IPhoneCharger { public IPhone8Charger() { Debug.Log("创建IPhone8Charger充电器"); } } public class IPhoneXCharger:IPhoneCharger { public IPhoneXCharger() { Debug.Log("创建IPhoneXCharger充电器"); } } public interface IFactory { IPhone CreateIPhone(); IPhoneCharger CreateIPhoneCharger(); } public class FactoryIPhone8 : IFactory { public IPhone CreateIPhone() { return new IPhone8(); } public IPhoneCharger CreateIPhoneCharger() { return new IPhone8Charger(); } } public class FactoryIPhoneX : IFactory { public IPhone CreateIPhone() { return new IPhoneX(); } public IPhoneCharger CreateIPhoneCharger() { return new IPhoneXCharger(); } }