Unity 에서 디자인 모델 을 사용 하 는 간단 한 공장 모델,공장 방법 모델 과 추상 적 인 공장 모델

6470 단어 Unity디자인 모드
예 를 들 어 우 리 는 두 가지 음료(농부 의 샘물 과 맥동)를 생산 하고 싶 습 니 다.그 어떠한 디자인 모델 도 사용 하지 않 을 때 이 렇 습 니 다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

    void Start()
    {
        Drink drink1 = Instantiate("    ");
        Drink drink2 = Instantiate("  ");
    }
    private Drink Instantiate(string type)
    {
        Drink Drink = null;
        if (type.Equals("    "))
        {
            Drink = new NongFuShanQuan();
        }
        else if (type.Equals("  "))
        {
            Drink = new MaiDong();
        }
        return Drink;
    }
}
public class Drink
{
    public int Id;
    public string content;
    /// 
    ///           
    /// 
    public Drink()
    {
        GameObject g = new GameObject(this.GetType().FullName);
    }

}
public class NongFuShanQuan : Drink
{
    public NongFuShanQuan()
    {
        Id = 1;
        content = "500mL";
    }
}
public class MaiDong : Drink
{
    public MaiDong()
    {
        Id = 2;
        content = "450mL";
    }
}

우 리 는 음료 대상 의 생 성 작업 을 인 스타 그램 방법 에 두 고 들 어 오 는 매개 변 수 를 통 해 만 들 음료 대상 을 확인 합 니 다.간단 한 공장 모델 은 인 스타 그램 방법 중의 내용 을 새로운 간단 한 공장 류 에 밀봉 한다.이렇게 하면 우 리 는 간단 한 공장 류 를 통 해 각종 음 료 를 만 들 수 있다.음료 의 품종 을 늘 려 야 할 때 는 간단 한 공장 류 에서 만 수정 해 야 한다.새로운 음료 류 는 모두 처리 해 야 한다)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

    void Start()
    {
        DrinkFactory factory = new DrinkFactory();
        factory.Instantiate("    ");
        factory.Instantiate("  ");
    }
}
public class DrinkFactory
{
    public Drink Instantiate(string type)
    {
        Drink Drink = null;
        if (type.Equals("    "))
        {
            Drink = new NongFuShanQuan();
        }
        else if (type.Equals("  "))
        {
            Drink = new MaiDong();
        }
        return Drink;
    }
}
public class Drink
{
    public int Id;
    public string content;
    /// 
    ///           
    /// 
    public Drink()
    {
        GameObject g = new GameObject(this.GetType().FullName);
    }

}
public class NongFuShanQuan : Drink
{
    public NongFuShanQuan()
    {
        Id = 1;
        content = "500mL";
    }
}
public class MaiDong : Drink
{
    public MaiDong()
    {
        Id = 2;
        content = "450mL";
    }
}

그러나 새로운 음료 의 품종 을 늘 리 는 것 은 우리 가 수정 해 야 할 부분 이 너무 많다 고 생각 합 니 다.이렇게 하면 확장 성 이 비교적 떨 어 지기 때문에 공장 방법 모델 이 왔 습 니 다.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

    void Start()
    {
        DrinkFactory nongfushanquanfactory = new NongFuShanQuanFactory();
        DrinkFactory maidongfactory = new MaiDongnFactory();

        Drink nongfushanqaun = nongfushanquanfactory.Instantiate();
        Drink maidong = maidongfactory.Instantiate();

    }
}
public abstract class DrinkFactory
{
    public abstract Drink Instantiate();

}
public class NongFuShanQuanFactory : DrinkFactory
{
    public override Drink Instantiate()
    {
        return new NongFuShanQuan();
    }
}
public class MaiDongnFactory : DrinkFactory
{
    public override Drink Instantiate()
    {
        return new MaiDong();
    }
}
public class Drink
{
    public int Id;
    public string content;
    /// 
    ///           
    /// 
    public Drink()
    {
        GameObject g = new GameObject(this.GetType().FullName);
    }

}
public class NongFuShanQuan : Drink
{
    public NongFuShanQuan()
    {
        Id = 1;
        content = "500mL";
    }
}
public class MaiDong : Drink
{
    public MaiDong()
    {
        Id = 2;
        content = "450mL";
    }
}

공장 방법 모델 의 핵심 은 전문 적 인 공장 에서 전문 적 인 음 료 를 생산 하 는 것 이다.쉽게 말 하면 맥동 공장 은 맥동 음료 만 생산 하고 농부 샘물 공장 은 농부 샘물 만 생산 하 는 것 이다.따라서 우 리 는 새로운 구체 적 인 공장 류 에 가입 하고 각자 부류 공장 의 생산 방법 을 실현 해 야 한다.
그러나 한 공장 에서 한 가지 음료 만 생산 하 는 것 은 너무 사치스럽다.나 는 두 개 이상 을 생산 해 야 한다.그리고 나 는 모든 음 료 를 생산 하 는 방법 을 개방 하여 고객 이 스스로 선택 하도록 해 야 한다.그래서 추상 적 인 공장 모델 이 왔 다.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Reflection;

public class Test : MonoBehaviour
{

    void Start()
    {
        Factory factory = new DrinkFactory();
        Drink maidong = factory.CreateMaiDong();
        Drink nongfushanquan = factory.CreateNongFuShanQuan();
        Factory otherfactory = new OtherDrinkFactory();
        Drink coco = otherfactory.CreateMaiDong();
        Drink bear = otherfactory.CreateNongFuShanQuan();
    }
}
public class Drink
{
    public int Id;
    public string content;
    public Drink()
    {
        GameObject g = new GameObject(this.GetType().FullName);
    }
}
public abstract class Factory
{
    public abstract Drink CreateMaiDong();
    public abstract Drink CreateNongFuShanQuan();
}
public class DrinkFactory : Factory
{
    public override Drink CreateMaiDong()
    {
        return new MaiDong();
    }

    public override Drink CreateNongFuShanQuan()
    {
        return new NongFuShanQuan();
    }
}
public class OtherDrinkFactory : Factory
{
    public override Drink CreateMaiDong()
    {
        return new MaiDong_600();
    }

    public override Drink CreateNongFuShanQuan()
    {
        return new NongFuShanQuan_1000();
    }
}

public class NongFuShanQuan : Drink
{
    public NongFuShanQuan()
    {
        Id = 1;
        content = "500mL";
    }
}
public class MaiDong : Drink
{
    public MaiDong()
    {
        Id = 2;
        content = "450mL";
    }
}
public class NongFuShanQuan_1000 : Drink
{
    public NongFuShanQuan_1000()
    {
        Id = 3;
        content = "1000mL";
    }
}
public class MaiDong_600 : Drink
{
    public MaiDong_600()
    {
        Id = 4;
        content = "600mL";
    }
}



공장 방법 은 추상 적 인 공장 과 매우 비슷 하 다.주로 추상 적 인 공장 이 구체 적 인 공장 류 에 포 장 된 것 은 여러 개의 실례 적 인 창설 방법 이다.새로 추 가 된 공장 류 는 이런 방법 을 다시 쓸 수 있 고 이런 방법 에서 제품 을 자 유 롭 게 선택 할 수 있다.만약 에 공장 방법 모델 을 사용 하려 면 하나의 맥동 공장 과 농부 산 샘 공장 이 필요 하 다.맥동 공장 은 맥동 대상 만 을 만 드 는 것 을 책임 지고 농부 산 샘 공장 은 농부 산 샘 대상 만 만 만 드 는 것 을 책임 지고 추상 적 인 공정 모델 을 사용 하려 면 하나의 음료 공장 만 필요 하 다.이 음료 공장 은 맥동 을 만 드 는 것 도 책임 지고 농부 산 샘 을 만 드 는 것 도 책임 지 며 필요 한 다른 음 료 를 만 드 는 것 도 책임 질 수 있다.

좋은 웹페이지 즐겨찾기