随笔分类 - 设计模式系列
在Javascript中应用设计模式
摘要:大家好!本文介绍状态模式及其在Javascript中的应用。模式介绍定义当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。类图及说明State:抽象状态接口或抽象类,负责对象状态定义,并且封装环境角色以实现状态切换ConcreState:具体状态每一个具体状态必须完成两个职责:本状态的行为管理以及趋向状态处理。通俗地说,就是本状态下要做的事情,以及本状态如何过渡到其他状态。Context:环境 定义客户端需要的接口,并且负责具体状态的
阅读全文
摘要:大家好!本文介绍迭代器模式及其在Javascript中的应用。模式介绍定义提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示。类图及说明Iterator抽象迭代器抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有固定的3个方法:first()获得第一个元素,next()访问下一个元素,isDone()(或者为hasNext())是否已经访问到底部ConcreIterator具体迭代器具体迭代器角色要实现迭代器接口,完成容器元素的遍历。Aggregate抽象容器容器角色负重提供创建具体迭代器角色的接口,必然提供一个类似createIterator()(或者为iterator()
阅读全文
摘要:大家好!本文介绍观察者模式及其在Javascript中的应用。模式介绍定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。类图及说明Subject:主题\发布者能够动态地增加、取消观察者。它负责管理观察者并通知观察者。Observer:观察者\...
阅读全文
公告
本站所有博文均为原创
杨元超,专注于Web 3D、光线追踪、架构、引擎、编辑器、WebGPU,代表作:
H5游戏:巨大娘的玩耍
开源书:《3D编程模式》
Wonder:Web3D开源引擎和开源编辑器
Meta3D:开发Web3D引擎、编辑器的Web3D开源低代码平台
扫码加我创建的QQ群,交流学习:

随笔分类 (149)
随笔档案 (164)
- 2024年9月(1)
- 2024年6月(1)
- 2024年5月(2)
- 2024年4月(4)
- 2024年1月(3)
- 2023年12月(1)
- 2023年7月(2)
- 2023年6月(6)
- 2023年5月(3)
- 2023年4月(3)
- 2023年3月(2)
- 2023年2月(3)
- 2023年1月(6)
- 2022年12月(8)
- 2022年11月(11)
- 2022年10月(2)
- 2022年9月(5)
- 2022年8月(7)
- 2022年7月(1)
- 2022年6月(5)
- 2022年5月(1)
- 2022年3月(1)
- 2021年7月(1)
- 2021年1月(2)
- 2020年12月(3)
- 2020年11月(1)
- 2020年10月(2)
- 2020年6月(1)
- 2020年3月(5)
- 2020年1月(11)
- 2019年12月(13)
- 2019年10月(1)
- 2019年8月(1)
- 2019年7月(4)
- 2019年6月(3)
- 2019年5月(2)
- 2019年3月(4)
- 2016年7月(1)
- 2016年6月(1)
- 2014年12月(5)
- 2014年11月(2)
- 2014年9月(2)
- 2014年8月(1)
- 2013年10月(14)
- 2013年9月(1)
- 2013年6月(3)
- 2012年10月(1)
- 2012年6月(1)
- 更多
阅读排行榜
- 1. 优化Webstorm(12966)
- 2. 关于使用Css设置Canvas画布大小的问题(12548)
- 3. 深入理解requestAnimationFrame(11313)
- 4. Wonder 1.0正式版发布-----WebGL 3D引擎和编辑器(9612)
- 5. 炸弹人游戏开发系列(1):准备工作(8305)
- 6. WebGPU学习(一): 开篇(6813)
- 7. 我完成了10000小时开发3D引擎(6764)
- 8. 我对Stub和Mock的理解(5822)
- 9. 理解DOM(5388)
- 10. 炸弹人游戏开发系列(2):初步设计(5270)
- 11. 一个人独自做长期项目,如何提高工作效率?(5234)
- 12. 发布HTML5 RTS游戏-古代战争(4801)
- 13. 炸弹人游戏开发系列(3):显示地图(4423)
- 14. 分享我收集的引擎、图形学、WebGL方面的电子资料(4380)
- 15. WebGPU+光线追踪Ray Tracing 开发三个月总结(4197)