基类:
/// <summary>
/// 抽象工厂:提供创建不同品牌的手机屏幕和手机主板
/// </summary>
public abstract class AbstractFactory:Abstract_HuaWei
{
/// <summary>
/// 工厂生产屏幕
/// </summary>
/// <returns></returns>
public abstract Screen1 CreateScreen();
/// <summary>
/// 工厂生产主板
/// </summary>
/// <returns></returns>
public abstract MotherBoard CreateMotherBoard();
}
/// <summary>
/// 屏幕抽象类:提供每一种手机屏幕的继承
/// </summary>
public abstract class Screen1
{
public abstract void Print();
}
/// <summary>
/// 主板抽象类:提供每一种品牌主板继承
/// </summary>
public abstract class MotherBoard
{
public abstract void Print();
}
每种手机需要生产的部件:
/// <summary>
/// 小米手机屏幕
/// </summary>
public class XiaoMiScreen : Screen1
{
public override void Print()
{
Debug.Log("生产小米手机屏幕");
}
}
/// <summary>
/// 生产小米主板
/// </summary>
public class XiaoMiMotherBoard : MotherBoard
{
public override void Print()
{
Debug.Log("生产小米手机主板");
}
}
// <summary>
/// 苹果手机屏幕
/// </summary>
public class AppleScreen : Screen1
{
public override void Print()
{
Debug.Log("生产苹果手机屏幕");
}
}
/// <summary>
/// 生产苹果主板
/// </summary>
public class AppleMotherBoard : MotherBoard
{
public override void Print()
{
Debug.Log("生产苹果手机主板");
}
}
创建工厂:
/// <summary>
/// 小米工厂
/// </summary>
public class XiaoMIFactroy : AbstractFactory
{
public override MotherBoard CreateMotherBoard()
{
return new XiaoMiMotherBoard();
}
public override Screen1 CreateScreen()
{
return new XiaoMiScreen();
}
}
/// <summary>
/// 苹果工厂
/// </summary>
public class AppleFactory : AbstractFactory
{
public override MotherBoard CreateMotherBoard()
{
return new AppleMotherBoard();
}
public override Screen1 CreateScreen()
{
return new AppleScreen();
}
}
调用:
void Start()
{
AbstractFactory xiaomiFactory = new XiaoMIFactroy();
XiaoMiScreen xs= xiaomiFactory.CreateScreen() as XiaoMiScreen;
xs.Print();
AbstractFactory appleFactory = new AppleFactory();
appleFactory.CreateMotherBoard().Print();
}