C# 抽象工厂模式

来源:互联网 发布:ios10.3.3完美越狱mac 编辑:程序博客网 时间:2024/06/05 23:12
using UnityEngine;
using System.Collections;


public abstract class ResourceAbstractFactory : MonoBehaviour
{
    public abstract UIResourceAbstract CreateUIManager();
    public abstract AudioResourceAbstract CreateAudioManager();
}


public class AssistantResourceManager : ResourceAbstractFactory
{
    public override UIResourceAbstract CreateUIManager()
    {
        return new AssistantUIResourceManager();
    }


    public override AudioResourceAbstract CreateAudioManager()
    {
        return new AssistantAudioResourceManager();
    }
}


public class PrimaryResourceManager : ResourceAbstractFactory
{
    public override UIResourceAbstract CreateUIManager()
    {
        return new PrimaryUIResourceManager();
    }
    public override AudioResourceAbstract CreateAudioManager()
    {
        return new PrimaryAudioResourceManager();
    }
}


public abstract class UIResourceAbstract
{
    public abstract void A();
    public abstract void B();
}


public abstract class AudioResourceAbstract
{
    public abstract void C();
    public abstract void D();
}


public class PrimaryUIResourceManager : UIResourceAbstract
{
    public override void A()
    {
        Debug.Log("A_Primary");
    }
    public override void B()
    {
        Debug.Log("B_Primary");
    }
}


public class PrimaryAudioResourceManager : AudioResourceAbstract
{
    public override void C()
    {
        Debug.Log("C_Primary");
    }
    public override void D()
    {
        Debug.Log("D_Primary");
    }
}


public class AssistantUIResourceManager : UIResourceAbstract
{
    public override void A()
    {
        Debug.Log("A_Assistant");   
    }
    public override void B()
    {
        Debug.Log("B_Assistant");
    }
}


public class AssistantAudioResourceManager : AudioResourceAbstract
{
    public override void C()
    {
        Debug.Log("C_Assistant");
    }
    public override void D()
    {
        Debug.Log("D_Assistant");
    }
}
0 0
原创粉丝点击