位置: 编程技术 - 正文

设计模式--简单工厂模式在unity3d里面的使用(简单的设计模式)

编辑:rootadmin

推荐整理分享设计模式--简单工厂模式在unity3d里面的使用(简单的设计模式),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:23种设计模式 平常使用,设计模式其实很简单,设计模式 简书,设计模式 简书,设计模式其实很简单,设计模式简单工厂与抽象工厂的区别,简单的设计模式,设计模式简单理解,内容如对您有帮助,希望把文章链接给更多的朋友!

设计模式--简单工厂模式在unity3d里面的使用(简单的设计模式)

来自 Factory。工厂方法模式,这是他的中文名,英文名叫做Factory Method。抽象工厂模式,这是他的中文名,英文名叫做Abstract Factory。现在我们知道了工厂家族在GoF里面的几个队员叫什么名字,但是还不熟悉怎么使用他。不要着急,现在我们就开始学习如何使用他们。在工厂家族中简单工厂模式是这3种形态里面最简单最直接的一种。我们就先从他下手,然后在逐步的了解工厂方法模式、抽象工厂模式的使用。相对于OOP来说,每种设计模式都是一套武功心法,而每套心法对应的武功套路就是模式的具体使用的方式。修炼简单工厂模式的心法如下:1)工厂类角色Creator:工厂类在客户端的直接控制下(Create方法)创建产品对象。2)抽象产品角色Product:定义简单工厂创建的对象的父类或它们共同拥有的接口。可以是一个类、抽象类或接口。3)具体产品角色ConcreteProduct:定义工厂具体加工出的对象。修炼简单工厂模式的武功套路如下: (备注:上面是简单工厂模式demo里的定向关系图文档的截图!)修炼心法与武功套路的对应:1) 工厂类角色Creator对应武功套路里面的ResourceSimpleFactory。2) 抽象产品角色Product对应武功套路里面的ResourceManager。3) 具体产品角色ConcreteProduct对应武功套路里面的UIResourceManager和AudioResourceManager。上面描述了简单工厂模式的修炼心法和武功套路。下面就给出具体的套路细节。建议:看下面代码之前,自己先动手练习下为好。工厂类角色:using unityEngine;using System.Collections;namespace SimpleFactory{ /// <summary> /// 简单资源工厂类,负责创建UI,Audio等管理器的实例。 /// </summary> public class ResouceSimpleFactory { // 方式一 public ResouceManager CreateManager(string type) { if (type == "UI") { return new UIResouceManager(); } else if (type == "Audio") { return new AudioResourceManager(); } else { return null; } } //方式二 public ResouceManager CreateManager(ResourceEnum re) { switch (re) { case ResourceEnum.UIResource: return new UIResouceManager(); case ResourceEnum.AudioResouce: return new AudioResourceManager(); default: return null; } } }}抽象产品类:using UnityEngine;using System.Collections;namespace SimpleFactory{ /// <summary> /// 资源管理器基类,抽象产品 /// </summary> public abstract class ResouceManager { public abstract void LoadConfig(string path); public abstract void LoadAsset(string name); public abstract void UnLoadResource(bool status); }}具体产品类:具体产品AudioResourceManager:using UnityEngine;using System.Collections;namespace SimpleFactory{ /// <summary> /// Audio资源管理器,抽象产品的具体产品 /// </summary> public class AudioResourceManager : ResouceManager { public override void LoadConfig(string path) { Debug.Log("加载和音乐有关的配置文件"); } public override void LoadAsset(string name) { Debug.Log("加载音乐文件"); } public override void UnLoadResource(bool status) { Debug.Log("卸载加载的音乐文件"); } }}具体产品UIResourceManager:using UnityEngine;using System.Collections;namespace SimpleFactory{ /// <summary> /// UI资源管理器,抽象产品的具体产品 /// </summary> public class UIResouceManager : ResouceManager { public override void LoadConfig(string path) { Debug.Log("加载UI的配置文件"); } public override void LoadAsset(string name) { Debug.Log("加载UI里面的资源"); } public override void UnLoadResource(bool status) { Debug.Log("卸载加载的UI资源"); } }}资源类型枚举类:using UnityEngine;using System.Collections;namespace SimpleFactory{ /// <summary> /// 定义资源枚举类型 /// </summary> public enum ResourceEnum { None, UIResource, AudioResouce }}客户端测试类:using UnityEngine;using System.Collections;namespace SimpleFactory{ /// <summary> /// 使用资源管理器的客户端 /// </summary> public class ResouceSimpleFactoryClient : MonoBehaviour { ResouceSimpleFactory rf; public void Start() { rf = new ResouceSimpleFactory(); } public void OnGUI() { if (GUILayout.Button("UI管理器")) { ResouceManager ui = rf.CreateManager("UI"); ui.LoadConfig("http:......."); ui.LoadAsset("蛮牛"); ui.UnLoadResource(false); } if (GUILayout.Button("Audio管理器")) { ResouceManager am = rf.CreateManager("Audio"); am.LoadConfig("http:....."); am.LoadAsset("蛮牛"); am.UnLoadResource(false); } } }}搞懂了上面的武功心法和武功套路,你也就领悟了简单工厂模式。每种武功都有他的优缺点,例如七伤拳,你懂得。那么简单工厂模式的优缺点是什么呢?接着往下看,你就明白了。简单工厂模式优缺点:优点:工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅"消费"产品。简单工厂模式通过这种做法实现了对责任的分割。缺点:1) 当产品有复杂的多层等级结构时,工厂类只有自己,以不变应万变,就是模式的缺点。因为工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。2) 系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,有可能造成工厂逻辑过于复杂。3) 简单工厂模式通常使用静态工厂方法,这使得无法由子类继承,造成工厂角色无法形成基于继承的等级结构。在这里野猪先给大家提一个醒,GoF设计模式里面的每种模式都是针对某类特定问题的解决策略。So,没有什么设计模式是完美的!好了,简单工厂模式就讲到这里。敬请期待如何修炼工厂方法模式。Tips:告诉大家一个小秘密,简单工厂模式实际上不是GoF设计模式的一员哦!

Unity3D 帧数修改 1、在Quality(质量)设置里把帧数设定关闭之后才能在代码中修改游戏运行的帧数2、在Unity中新建脚本UpdateFrame.cs,编写如下代码usingUnityEngine;usingSystem.Collec

unity 移动物体到指定位置的四种方法 方法1:使用Vector3.MoveTowards/preprename=codeclass=csharpvoidUpdate(){floatstep=speed*Time.deltaTime;gameObject.transform.localPosition=Vector3.MoveTowards(gameObject.transform.localPosition,new

Unity中预设体的创建(mac机) Perfab可以理解为是一个游戏对象及其组件的集合,目的是使游戏对象及资源能够被重复使用。通过预设体来创建对象的过程可以理解为实例化。预设体

标签: 简单的设计模式

本文链接地址:https://www.jiuchutong.com/biancheng/382584.html 转载请保留说明!

上一篇:关于XML的读写操作以及查询操作(xml文件的数据如何读取)

下一篇:Unity3D 帧数修改(unity每帧调用)

  • 购买增值税发票金税盘计入什么科目?
  • 简易计税36个月不能变指的是这个项目吗?
  • 外购入库暂估补差单怎么去除
  • 房屋折旧计提完成价格还能调整吗
  • 非盈利组织的银行是什么
  • 折旧额对应纳税所得额的影响
  • 资本化研发费用在本年的摊销
  • 基本医疗支付范围
  • 分期付款外币采购形成的差异如何做会计处理?
  • 增值税普通发票需要交税吗
  • 办理异地租房提取公积金流程
  • 复利现值系数和普通年金现值系数关系
  • 关于进项税额转出的规定
  • 报销油费属于什么类型
  • 收到测试费几分钱如何做账
  • 保理利息开具增值税专用发票
  • 预缴时少缴税款是否需要缴纳滞纳金?
  • 实验耗材发票内容怎么写
  • 税收征管法实施细则 不予加收滞纳金
  • 一万元国债一年多少利息
  • 六大会计科目的关系
  • 企业所得税季报是填累计数吗
  • 工会经费的优惠政策2020
  • 你需要来自system的权限怎么解决
  • 现金流量表的编制基础是权责发生制
  • 公司购入二手设备 如何开具发票
  • 赞助费支出怎样记账
  • windows7怎样升级windows10
  • 固定资产前期购买的后期入账怎么入?
  • php数组函数输出《咏雪》里有多少"片"字
  • 业务招待费应计入期间费用的哪项费用
  • 如何安装iis网站服务器
  • 字典树python
  • php加入图片代码
  • PHP:imagepsextendfont()的用法_GD库图像处理函数
  • 跨年度坏账准备转回账务处理
  • php5 mysql教程
  • 服务,不动产和无形资产怎么填小规模
  • php测验
  • vue 自适应网站ui框架
  • opencv如何显示图片
  • 一次开票分期确认怎么弄
  • python怎么生成随机矩阵
  • 出租人经营租赁会计分录
  • 小规模年销售额500万界定标准
  • 销售返利的账务处理购买方
  • 计提事业发展基金分录
  • 厂房出租一年多少钱
  • 银行代发工资流程
  • mysql@变量
  • 企业租车接送员工上下班
  • 天然气安装工程有多大利润
  • 母子公司之间无偿划转固定资产
  • 个税起征点提高的意义
  • 购买库存商品的运输费
  • 企业取得生产或制造某项财产物资时
  • 小企业会计准则和一般企业会计准则的区别
  • 小规模纳税人的增值税账务处理
  • mysqldump命令在哪里执行
  • asp.net 使用SqlBulkCopy极速插入数据到 SQL Server
  • win10系统预览版
  • winxp系统打不开
  • cndll.dll
  • Win7系统关闭怎么办
  • windows升级后c盘满了
  • linux ping命令的用法
  • 如何给win7系统升级
  • Apache 2.0.55 for Linux 下载
  • 双系统其中一个系统无法开机
  • nodejs 用途
  • python爬虫框架 path
  • 基于python的推荐系统
  • unity3d模型怎么制作
  • 深入理解中国式现代化
  • javascriptweb
  • jquery属性选择器,选取所有带href
  • 开具红字增值税专用发票通知单
  • 没有代理记账资质做代理记账业务
  • 获得感幸福感还有什么
  • 中医药文化进校园活动
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设