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

网站建设 开办费重庆市住房和城乡建设厅官网

网站建设 开办费,重庆市住房和城乡建设厅官网,太原网站建设维护,义乌企业网站搭建首选1、模式标准 模式名称:原型模式 模式分类:创建型 模式意图:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象 结构图: 适用于: 1、当一个系统应该独立于它的产品创建、构成和表示时 2、…

1、模式标准

模式名称:原型模式

模式分类:创建型

模式意图:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象

结构图:

适用于:

1、当一个系统应该独立于它的产品创建、构成和表示时
2、当要实例化的类是在运行时刻指定时,例如,通过动态装载
3、为了避免创建一个与产品类层次平行的工厂类层次时。
4、当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们,可能比每次用合适的状态手工实例化该类更方便一些。 

2、分析与设计

我们的unitItem经过几种模式的改造,已经变得复杂起来,通过cocos creator 中的instantiate可以克隆指定任何类型的对象,但是直接用有2个缺点不符合我们的设计。第一个是因为在unitItem中我们用享元模式使用了fighter。如果直接用instantiate一个新对象是他拥有的是一个新fighter,并没有共享内存。第二个是因为我们的游戏框架给每个unitItem都设置了个unitId。所以我们还需要原型模式来通过这个clone操作来优化上面2个问题,当然目前大部分工作也还是instantiate完成的。

另外目前抽象工厂方法 xhgame.itemFactory.createUnitItem('abc')创建的单位是一个原胚单位,一些属性需要后期set。通过clone方法可以方便很多。

意图:用原型实例指定创建对象的种类,并且通过复制(clone)创建新的对象

3、开始打造

item

export interface IItem {itemNo: stringreset(): voidclone(): any
}

单位的克隆

export class UnitItem  extends Component implements IItem, IUnitItem {ad: number = 100;mp: number = 0;// 攻击方式fighter: Fighter;private currentState: IUnitState = null;clone(): UnitItem<T> {// 克隆节点let cloneNode = instantiate(this.node);let clonedItem = cloneNode.getComponent(UnitItem)clonedItem.ad = this.ad;clonedItem.mp = this.mp;clonedItem.setFighter(xhgame.flyweightFactory.getFighter('jinchen_futou'))clonedItem.unitId = xhgame.itemFactory.getUnitItemId()return clonedItem;}.....}

4、开始使用


let unitItem = xhgame.itemFactory.createUnitItem('kuloubing')
unitItem.setFighter(xhgame.flyweightFactory.getFighter('jinchen_futou'));let unitItem2 = unitItem.clone()
console.log('是否内存共享Fighter', unitItem.fighter === unitItem2.fighter) // 显示true


文章转载自:

http://TL3W9try.Lxcwh.cn
http://rbHyLooP.Lxcwh.cn
http://JyBXdldK.Lxcwh.cn
http://xY3ZYBbo.Lxcwh.cn
http://fhsbFeSG.Lxcwh.cn
http://k6BMcOfI.Lxcwh.cn
http://6blNWqPS.Lxcwh.cn
http://Icqe2AnQ.Lxcwh.cn
http://NOGp5RC3.Lxcwh.cn
http://01qRgOc6.Lxcwh.cn
http://ZsNNT0D1.Lxcwh.cn
http://4I2wvFN8.Lxcwh.cn
http://EdQD0cn9.Lxcwh.cn
http://zN1cp21T.Lxcwh.cn
http://dpFaraHb.Lxcwh.cn
http://GBv2Y0dM.Lxcwh.cn
http://CsRuMmIY.Lxcwh.cn
http://q6C7r3um.Lxcwh.cn
http://1m4eMxRe.Lxcwh.cn
http://zj5FbDoJ.Lxcwh.cn
http://A55SAly2.Lxcwh.cn
http://mI5SkTjy.Lxcwh.cn
http://yN87v9pO.Lxcwh.cn
http://5EqocP8q.Lxcwh.cn
http://1ih2wvtm.Lxcwh.cn
http://sTmKSCCi.Lxcwh.cn
http://ZvBavJaJ.Lxcwh.cn
http://SphwndWz.Lxcwh.cn
http://iCIGpX3i.Lxcwh.cn
http://e6W92W16.Lxcwh.cn
http://www.dtcms.com/wzjs/659166.html

相关文章:

  • 导入表格做地图中热力网站网站流量分析怎么做
  • 电子产品网站建设wordpress副标题函数
  • 重庆建站程序用asp做网站的流程
  • 做网站要多少钱电子商务网站建设管理实训报告
  • 密云青岛网站建设ppt 做的最好的网站有哪些
  • 手机网站幻灯片焦作网站建设公司
  • 网站切图大图做一个小程序
  • 无锡网站制作推广公司深圳网站设计哪好
  • 自己找网站开发项目页面紧急情况访问升级
  • 百度搜索不到asp做的网站广西建设网公布名单
  • 佛山网站搜索引擎优化wordpress标题怎么写
  • 同人那个小说网站做的最好渠道推广方案
  • 连锁酒店网站建设惠州广告公司排名
  • 上海缔客网站建设公司哈尔滨专业官网建站企业
  • 免费的域名网站天津网站建设seo优化
  • 做文案的网站有些什么重庆建设工程信息网官网首页入口
  • 仿网站制作教学视频教程凡科做的网站不能被收录
  • 深圳企业网站建设推荐公司做美团网站多少钱
  • 辽宁鞍山网站建设公司163网易免费邮箱登录
  • 上海网站制作案例网站开发技术与应用试验报告4
  • 做3d效果图的网站常州网络科技推广公司
  • 宠物狗网站建设分析app软件网站开发
  • 想学网站建设方向的研究生做网站备负责人风险大吗
  • 制造业小程序网站开发太姥山镇建设的网站
  • 网站付款方式企业网站报价单
  • 广州哪里有外贸网站学平面设计哪个学校好
  • 东莞 网站建设外贸建站用什么服务器
  • 北京朝阳双桥网站建设优质公司网站
  • 优秀画册设计网站重庆seo排名电话
  • 合肥专业网站建设公司做微信小程序