中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

濟(jì)南專(zhuān)門(mén)做公司網(wǎng)站的公司漯河網(wǎng)站seo

濟(jì)南專(zhuān)門(mén)做公司網(wǎng)站的公司,漯河網(wǎng)站seo,設(shè)計(jì)師網(wǎng)站,展覽展會(huì)策劃公司目錄 抽象工廠模式 思維導(dǎo)圖 接口(抽象類(lèi)) 工廠接口 抽象產(chǎn)品類(lèi) 抽象武器接口 抽象人物接口 具體工廠和具體產(chǎn)品 具體工廠 (1)產(chǎn)品接口,生成具體人物 (2)武器接口,生成具體…

目錄

抽象工廠模式

思維導(dǎo)圖

接口(抽象類(lèi))

工廠接口

抽象產(chǎn)品類(lèi)

抽象武器接口

抽象人物接口

具體工廠和具體產(chǎn)品

具體工廠

(1)產(chǎn)品接口,生成具體人物

(2)武器接口,生成具體武器

具體產(chǎn)品的實(shí)現(xiàn)

Soldier類(lèi)型

ShotGunA 類(lèi)型

單例模式資源加載

測(cè)試

GameController

PerformanceTest


抽象工廠模式

思維導(dǎo)圖

一個(gè)工廠里面可以生產(chǎn)多個(gè)產(chǎn)品

一個(gè)工廠可以生產(chǎn)一系列產(chǎn)品(一族產(chǎn)品),極大減少了工廠類(lèi)的數(shù)量

接口(抽象類(lèi))

工廠接口

在工廠里聲明創(chuàng)造的武器和產(chǎn)品

武器:創(chuàng)造武器方法創(chuàng)造具體的武器

人物:創(chuàng)造產(chǎn)品方法創(chuàng)造具體的人物

public interface IGameFactory
{IWeapon GreateWeapon();ICharacter CreateCharacter();
}

抽象產(chǎn)品類(lèi)

抽象武器接口

用來(lái)生產(chǎn)不同的武器,武器類(lèi)型

/// <summary>
/// 抽象武器接口-抽象產(chǎn)品
/// </summary>
public interface IWeapon
{void Use();//使用武器void Display();//顯示武器
}
抽象人物接口

用來(lái)生成不同的產(chǎn)品,人物類(lèi)型

/// <summary>
/// 抽象產(chǎn)品
/// </summary>
public interface ICharacter
{void Display();//顯示模型
}

具體工廠和具體產(chǎn)品

現(xiàn)代風(fēng)格的具體工廠,返回具體的產(chǎn)品

具體工廠

(1)產(chǎn)品接口,生成具體人物

返回要生成的產(chǎn)品,Soldier類(lèi)型

(2)武器接口,生成具體武器
public class ModernGameFactory : IGameFactory
{public ICharacter CreateCharacter(){return new Soldier();}public IWeapon GreateWeapon(){return new ShotGunA();}
}

具體產(chǎn)品的實(shí)現(xiàn)

Soldier類(lèi)型

實(shí)現(xiàn)ICharacter接口,生產(chǎn)具體的人物

/// <summary>
/// 具體產(chǎn)品---士兵
/// </summary>
public class Soldier : ICharacter
{private GameObject _model;public Soldier(){_model = ResourceManager.Instance.GetResource("Bot/SoldierA");}public void Display(){if (_model != null){GameObject.Instantiate(_model);}else{Debug.LogError("Soldier model not found");}}
}

ShotGunA 類(lèi)型

ShotGunA產(chǎn)品的生產(chǎn)

實(shí)現(xiàn)IWeapon接口

public class ShotGunA : IWeapon
{private GameObject _model;public ShotGunA(){_model = ResourceManager.Instance.GetResource("Weapon/LaserGun_A");}public void Display(){if (_model != null){GameObject.Instantiate(_model);}else{Debug.LogError("ShotGunA model not found");}}public void Use(){Debug.Log("使用武器");}
}

單例模式資源加載

單例模式(Singleton Pattern):是一種創(chuàng)建對(duì)象的設(shè)計(jì)模式,確保一個(gè)類(lèi)只有一個(gè)實(shí)例,并提供全局訪問(wèn)點(diǎn)。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;/// <summary>
/// 單例模式
/// </summary>
public class ResourceManager
{//本類(lèi)實(shí)例的引用private static ResourceManager _instance;//資源緩存器private Dictionary<string, GameObject> _resourceCache = new Dictionary<string, GameObject>();//為私有的字段準(zhǔn)備的屬性public static ResourceManager Instance{get//保證有且只有一個(gè)實(shí)例{if (_instance == null){_instance = new ResourceManager();}return _instance;}}//獲取資源的工作代碼,從硬盤(pán)或者緩存中獲取模型資源//傳入路徑pathpublic GameObject GetResource(string path){//詢(xún)問(wèn)資源存儲(chǔ)器中是否包含當(dāng)前路徑(不需要重復(fù)加載)if (!_resourceCache.ContainsKey(path)){GameObject resource = Resources.Load<GameObject>(path);if (resource == null){Debug.LogError($"Failed to load resource at path: {path}");return null;}_resourceCache[path] = resource;}return _resourceCache[path];}
}

測(cè)試

GameController

建個(gè)空物體掛上即可

功能:創(chuàng)建產(chǎn)品進(jìn)行測(cè)試

public class GameController : MonoBehaviour
{private ICharacter _character;private IWeapon _weapon;public void StartGame(IGameFactory factory){try{_character = factory.CreateCharacter();          _weapon = factory.GreateWeapon();_character.Display();_weapon.Use();}catch (System.Exception e){Debug.LogError($"Error starting game: {e.Message}");}}
}

PerformanceTest

建個(gè)空物體掛上即可

功能:測(cè)試用抽象工廠模式創(chuàng)建物體和直接實(shí)例化物體的時(shí)間性能區(qū)別

(直接創(chuàng)建會(huì)快)

public class PerformanceTest : MonoBehaviour
{private void Start(){//TestDirectInstantiation(500);TestFactoryPattern(500);}//直接實(shí)例化void TestDirectInstantiation(int count){Stopwatch stopwatch = new Stopwatch();stopwatch.Start();List<GameObject> objects = new List<GameObject>();GameObject prefab = Resources.Load<GameObject>("Bot/SoldierA");for (int i = 0; i < count; i++){objects.Add(GameObject.Instantiate(prefab));}stopwatch.Stop();UnityEngine.Debug.Log($"Direct Instantiation ({count} objects): {stopwatch.ElapsedMilliseconds} ms");// Clean upforeach (var obj in objects){GameObject.Destroy(obj);}objects.Clear();Resources.UnloadUnusedAssets();}//抽象工廠的實(shí)例化測(cè)試void TestFactoryPattern(int count){Stopwatch stopwatch = new Stopwatch();stopwatch.Start();IGameFactory factory = new ModernGameFactory();List<ICharacter> characters = new List<ICharacter>();for (int i = 0; i < count; i++){characters.Add(factory.CreateCharacter());characters[i].Display();}stopwatch.Stop();UnityEngine.Debug.Log($"Factory Pattern ({count} objects): {stopwatch.ElapsedMilliseconds} ms");//Clean upcharacters.Clear();Resources.UnloadUnusedAssets();}}

http://www.risenshineclean.com/news/49208.html

相關(guān)文章:

  • 陜西網(wǎng)站建設(shè)方案廣告網(wǎng)站建設(shè)網(wǎng)站排名優(yōu)化
  • 成都 網(wǎng)站建設(shè) 公司哪家好流量寶
  • 南城網(wǎng)站建設(shè)公司信息杭州網(wǎng)站排名提升
  • 網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師2022薪資北京seo公司wyhseo
  • 制作網(wǎng)站 個(gè)人企業(yè)網(wǎng)站設(shè)計(jì)制作
  • 丹東網(wǎng)站建設(shè)公司百度搜索什么關(guān)鍵詞能搜到網(wǎng)站
  • 山西做網(wǎng)站的公司營(yíng)銷(xiāo)技巧培訓(xùn)ppt
  • 百度建設(shè)網(wǎng)站寧波seo優(yōu)化定制
  • 營(yíng)銷(xiāo)型網(wǎng)站的網(wǎng)址合肥seo網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣
  • 網(wǎng)站界面設(shè)計(jì)的基本原則是什么web3域名注冊(cè)
  • 秦皇島網(wǎng)站制作多少錢(qián)百度一下首頁(yè)手機(jī)版
  • 做網(wǎng)站在經(jīng)營(yíng)范圍內(nèi)屬于什么各大網(wǎng)站推廣平臺(tái)
  • 關(guān)鍵詞代發(fā)排名首頁(yè)seo在線優(yōu)化工具 si
  • 國(guó)內(nèi)做新聞比較好的網(wǎng)站有哪些西安網(wǎng)站seo廠家
  • 菏澤網(wǎng)站建設(shè)哪家好企業(yè)員工培訓(xùn)總結(jié)
  • 爬蟲(chóng) 網(wǎng)站開(kāi)發(fā)實(shí)例網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃的內(nèi)容
  • 徐州本地網(wǎng)站鎮(zhèn)江seo快速排名
  • 建設(shè)集團(tuán)公司網(wǎng)站百度域名查詢(xún)官網(wǎng)
  • 光谷做網(wǎng)站推廣哪家好阿里巴巴運(yùn)營(yíng)
  • 佛山找人做網(wǎng)站seo發(fā)貼軟件
  • 湖南城鄉(xiāng)建設(shè)網(wǎng)站免費(fèi)外國(guó)網(wǎng)站瀏覽器
  • 簡(jiǎn)單網(wǎng)站后臺(tái)模板如何制作自己的網(wǎng)站
  • 如何在建設(shè)教育協(xié)會(huì)網(wǎng)站注冊(cè)考試智能營(yíng)銷(xiāo)系統(tǒng)
  • 商城網(wǎng)站建設(shè)視頻企業(yè)網(wǎng)站建設(shè)的重要性
  • 福州網(wǎng)站建設(shè)公司關(guān)鍵詞營(yíng)銷(xiāo)推廣
  • wordpress嗎西安seo關(guān)鍵詞排名
  • 寶安關(guān)于網(wǎng)站建設(shè)免費(fèi)二級(jí)域名申請(qǐng)網(wǎng)站
  • 民治做網(wǎng)站的公司平臺(tái)怎么推廣技巧
  • 建設(shè)通網(wǎng)站公路查詢(xún)軟文案例
  • 程序員接活的平臺(tái)網(wǎng)站seo問(wèn)答