简单工厂例子和抽象工厂
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SimpleFactoryTest : MonoBehaviour {
// Use this for initialization
void Start () {
//简单工厂模式
//通过不同的类型 产生或者返回 相对应的对象
//继承 抽象 接口
//MobilePhone mobilePhone = MobilePhoneFactory.CreateMobilePhone(PhoneType.Iphone);
//mobilePhone.Print();
MobilePhone xiaomiMobilePhone = MobilePhoneFactory.CreateMobilePhone(PhoneType.XiaoMI);
xiaomiMobilePhone.Print();
}
// Update is called once per frame
void Update () {
}
}
public abstract class MobilePhone
{
public abstract void Print();
}
public class Iphone : MobilePhone
{
public override void Print()
{
Debug.Log(“我是苹果手机”);
}
}
public class XiaoMi : MobilePhone
{
public override void Print()
{
Debug.Log(“我是小米手机”);
}
}
public class Smratisan : MobilePhone
{
public override void Print()
{
Debug.Log(“我是锤子手机”);
}
}
public enum PhoneType
{
Iphone,
XiaoMI,
Smratisan,
}
public class MobilePhoneFactory
{
///
/// 外部传过来一个手机类型
///
/// 返回一部手机的对象
public static MobilePhone CreateMobilePhone(PhoneType type)
{
MobilePhone mobilePhone = null;
switch (type)
{
case PhoneType.Iphone:
mobilePhone = new Iphone();
break;
case PhoneType.XiaoMI:
mobilePhone = new XiaoMi();
break;
case PhoneType.Smratisan:
mobilePhone = new Smratisan();
break;
default:
break;
}
return mobilePhone;
}
}
2.抽象工厂
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SimpleFactoryTest : MonoBehaviour {
// Use this for initialization
void Start () {
//简单工厂模式
//通过不同的类型 产生或者返回 相对应的对象
//继承 抽象 接口
//MobilePhone mobilePhone = MobilePhoneFactory.CreateMobilePhone(PhoneType.Iphone);
//mobilePhone.Print();
MobilePhone xiaomiMobilePhone = MobilePhoneFactory.CreateMobilePhone(PhoneType.XiaoMI);
xiaomiMobilePhone.Print();
}
// Update is called once per frame
void Update () {
}
}
public abstract class MobilePhone
{
public abstract void Print();
}
public class Iphone : MobilePhone
{
public override void Print()
{
Debug.Log(“我是苹果手机”);
}
}
public class XiaoMi : MobilePhone
{
public override void Print()
{
Debug.Log(“我是小米手机”);
}
}
public class Smratisan : MobilePhone
{
public override void Print()
{
Debug.Log(“我是锤子手机”);
}
}
public enum PhoneType
{
Iphone,
XiaoMI,
Smratisan,
}
public class MobilePhoneFactory
{
///
/// 外部传过来一个手机类型
///
/// 返回一部手机的对象
public static MobilePhone CreateMobilePhone(PhoneType type)
{
MobilePhone mobilePhone = null;
switch (type)
{
case PhoneType.Iphone:
mobilePhone = new Iphone();
break;
case PhoneType.XiaoMI:
mobilePhone = new XiaoMi();
break;
case PhoneType.Smratisan:
mobilePhone = new Smratisan();
break;
default:
break;
}
return mobilePhone;
}
}