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";
}
}
공장 방법 은 추상 적 인 공장 과 매우 비슷 하 다.주로 추상 적 인 공장 이 구체 적 인 공장 류 에 포 장 된 것 은 여러 개의 실례 적 인 창설 방법 이다.새로 추 가 된 공장 류 는 이런 방법 을 다시 쓸 수 있 고 이런 방법 에서 제품 을 자 유 롭 게 선택 할 수 있다.만약 에 공장 방법 모델 을 사용 하려 면 하나의 맥동 공장 과 농부 산 샘 공장 이 필요 하 다.맥동 공장 은 맥동 대상 만 을 만 드 는 것 을 책임 지고 농부 산 샘 공장 은 농부 산 샘 대상 만 만 만 드 는 것 을 책임 지고 추상 적 인 공정 모델 을 사용 하려 면 하나의 음료 공장 만 필요 하 다.이 음료 공장 은 맥동 을 만 드 는 것 도 책임 지고 농부 산 샘 을 만 드 는 것 도 책임 지 며 필요 한 다른 음 료 를 만 드 는 것 도 책임 질 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
photonnetwork.instantiate에서 gamepobject 유형을 생성 한 다음 상태 및 값을 참조하는 방법주로 마지막 기사에서 일어난 일의 수정입니다. 지난번↓ 그럼 주제입니다. (타이틀이 정리되어 없어서 죄송합니다) 우선 전회의 Illegal view ID:0입니다만 photonnetwork.instantiate를 사...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.