当前位置: 首页 > news >正文

网站建设模范代码wordpress 4.2.3漏洞

网站建设模范代码,wordpress 4.2.3漏洞,河南省建设厅八大员网站,个人域名注册流程目录 抽象工厂模式 思维导图 接口(抽象类) 工厂接口 抽象产品类 抽象武器接口 抽象人物接口 具体工厂和具体产品 具体工厂 (1)产品接口,生成具体人物 (2)武器接口,生成具体…

目录

抽象工厂模式

思维导图

接口(抽象类)

工厂接口

抽象产品类

抽象武器接口

抽象人物接口

具体工厂和具体产品

具体工厂

(1)产品接口,生成具体人物

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

具体产品的实现

Soldier类型

ShotGunA 类型

单例模式资源加载

测试

GameController

PerformanceTest


抽象工厂模式

思维导图

一个工厂里面可以生产多个产品

一个工厂可以生产一系列产品(一族产品),极大减少了工厂类的数量

接口(抽象类)

工厂接口

在工厂里声明创造的武器和产品

武器:创造武器方法创造具体的武器

人物:创造产品方法创造具体的人物

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

抽象产品类

抽象武器接口

用来生产不同的武器,武器类型

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

用来生成不同的产品,人物类型

/// <summary>
/// 抽象产品
/// </summary>
public interface ICharacter
{void Display();//显示模型
}

具体工厂和具体产品

现代风格的具体工厂,返回具体的产品

具体工厂

(1)产品接口,生成具体人物

返回要生成的产品,Soldier类型

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

具体产品的实现

Soldier类型

实现ICharacter接口,生产具体的人物

/// <summary>
/// 具体产品---士兵
/// </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 类型

ShotGunA产品的生产

实现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):是一种创建对象的设计模式,确保一个类只有一个实例,并提供全局访问点。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;/// <summary>
/// 单例模式
/// </summary>
public class ResourceManager
{//本类实例的引用private static ResourceManager _instance;//资源缓存器private Dictionary<string, GameObject> _resourceCache = new Dictionary<string, GameObject>();//为私有的字段准备的属性public static ResourceManager Instance{get//保证有且只有一个实例{if (_instance == null){_instance = new ResourceManager();}return _instance;}}//获取资源的工作代码,从硬盘或者缓存中获取模型资源//传入路径pathpublic GameObject GetResource(string path){//询问资源存储器中是否包含当前路径(不需要重复加载)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];}
}

测试

GameController

建个空物体挂上即可

功能:创建产品进行测试

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

建个空物体挂上即可

功能:测试用抽象工厂模式创建物体和直接实例化物体的时间性能区别

(直接创建会快)

public class PerformanceTest : MonoBehaviour
{private void Start(){//TestDirectInstantiation(500);TestFactoryPattern(500);}//直接实例化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();}//抽象工厂的实例化测试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.yayakq.cn/news/226481/

相关文章:

  • 一个网站一年要多少钱网页浏览器没有声音
  • 公司想建个网站怎么弄一个完整的项目计划书
  • 湖南房地产加盟网站建设官网建站多少钱
  • 做项目的网站网站后台管理系统摘要怎么写
  • 网站建设的审批建设工程机械鉴定中心官网
  • 网站换空间wordpress郑州市建设工程造价信息网
  • 做公司网站的好处以及优势江苏省建设厅工会网站
  • 梅州站扩建企业网站建设总结
  • 贵州高端网站开发vivo官网网站服务
  • 做教育招生网站无极招聘信息
  • 诸城做网站建设的海南省建设局网站搜索
  • 北京 网站制作最值钱的域名列表
  • 运城网站建设设计价格asp.netmvc 做网站
  • 五个网站个人网页设计链接
  • 阿里巴巴网站做方案运城市住房和城乡建设局网站
  • 韩国做美食网站个人网站的名字
  • 我的网站建设免费永久个人服务器
  • 网站后台管理要求二手交易网站建设内容策划
  • 小公司如何做网站隔离网站开发实用技术介绍
  • 想做个小网站怎么做公司网站建设记哪个科目
  • 免费手机建网站平台视频网站X站H站搭建建设
  • 江门建站网站模板免费php开源建站系统
  • 中国建设教育协会是什么网站高端企业站
  • 电子商务网站建设的认识抖音网页版小程序入口
  • 徐州做网站的设计师响应式网站设计规则
  • 珠海哪个网站制作公司好智慧团建pc端入口
  • 举报企业网站用个人信息备案涪陵网站建设
  • 专业网站设计公司和普通设计公司的区别网页微信版下载不了大文件
  • 东莞做网站建设公司seo美式
  • 关键词排名优化网站建设公司寒亭区住房和城乡建设局网站