Unity 设计模式之 工厂方法模式的实例介绍
1、打开Unity,新建一个空工程,具体如下图
2、在工程中,新建几个脚本,然后双击打开,具体如下图
3、脚本的具体代码和代码说明如下图
4、Product 脚本具体内容如下:///<summary>///抽象产品,定义工厂方法中所创建的对象///</summary>publicabstractclassProduct{//构造函数 publicProduct(){}publicabstractvoidOperation();}
5、ProductA脚本具体内容如下:usingUnityEngine;///<summary>///具体产品A,继承自Product///</summary>publicclassProductA:Product{publicProductA(){}publicoverridevoidOperation() { Debug.Log("产品A"); }}
6、ProductB脚本具体内容如下:usingUnityEngine;///<summary>///具体产品B,继承自Product///</summary>publicclassProductB:Product{publicProductB(){}publicoverridevoidOperation() { Debug.Log("产品B"); }}
7、Factory脚本具体内容如下:///<衡痕贤伎summary>///抽象工厂,声明了一个创建Product的方法///</summary>publicabstractclassFactory{///<summary> ///该方法用来返回Product产品 ///</summary> ///<returns>Theproduct.</returns> publicabstractProductCreateProduct();}
8、ProductAFactory脚本具体内容如下:///<summary>///具体产工厂,产品类A的创建者,继承自抽象工厂Creator///</summary>publicclassProductAFactory:Factory{publicoverrideProductCreateProduct() { returnnewProductA(); }}
9、ProductBFactory脚本具体内容如下:///<summary>///具体产工厂,产品类B的创建者,继承自抽象工厂Creator///</summary>publicclassProductBFactory:Factory{publicoverrideProductCreateProduct() { returnnewProductB(); }}
10、Test脚本具体内容如下:usingUnityEngine;publicc盟敢势袂lassTest:MonoBehaviour{//Usethisforinitialization voidStart(){ } //Updateiscalledonceperframe voidUpdate(){//生成产品A if(Input.GetKeyDown(KeyCode.A)){ FactoryAFactory=newProductAFactory(); ProductproductA=AFactory.CreateProduct();productA.Operation(); }//生成产品B if(Input.GetKeyDown(KeyCode.B)){ FactoryBFactory=newProductBFactory(); ProductproductB=BFactory.CreateProduct();productB.Operation(); } }}
11、脚本编译正确,回到Unity界面,在场景中新建一个 GameObject,并把 Test 脚本赋给 GameObject,具体如下图
12、运行场景,分别按下 A、B 键,控制台 Console 打印如下图
13、到此,《Unity 设计模式之 工厂方法模式的实例介绍》讲解结束,谢谢