随笔分类 - 设计模式
摘要:软件设计模式告诉我们,程序中不同的领域要保持隔离,也就是解耦。所以,我们不希望AI,物理引擎,渲染引擎,声音引擎,还有其他的事情影响到彼此,不能把他们放到同一个类里。下面是一个反例:if (collidingWithFloor() && (getRenderState() != INVISIBLE)){ playSound(HIT_FLOOR);}如果有人要修改这段代码,那么他就需要查看物理,绘图,和声音的代码以保证不会出错。更糟糕的情况是,你可能需要修改其他部分的代码!解决的办法:我们可以吧不同的领域分割城不同的组件,谈后需要的时候持有这些组件的实例,例如InputCompo
阅读全文
积分与排名
- 积分 - 112406
- 排名 - 13519
阅读排行榜
- 1. Box2D一:基础知识(34202)
- 2. Python服务器开发一:python基础(25591)
- 3. 如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1(23972)
- 4. Android NDK开发一:配置环境(16545)
- 5. cocos2d-x Tests讲解三:Particle System(粒子系统)(15611)
- 6. OpenGL ES学习总结一:基础知识简介(12516)
- 7. iOS动画实现:弹簧效果(11955)
- 8. iOS开源项目:JSONKit(10111)
- 9. Python服务器开发二:Python网络基础(10009)
- 10. IOS网络编程:HTTP(9390)
- 11. Python服务器开发三:Socket(9206)
- 12. Android 的反编译 (附愤怒的小鸟源码下载)(9020)
- 13. Android NDK开发三:java和C\C++交互(7073)
- 14. ios系统框架一: Core Animation(6941)
- 15. iOS开源项目:SVPullToRefresh(6210)
- 16. c++ STL总结一:vertor和list(5369)
- 17. 游戏开发模式一:组件模式(Component)(4483)
- 18. iOS开源项目:AudioPlayer(4146)
- 19. LibGDX详细介绍一(4017)
- 20. iOS多线程编程指南(二)线程管理(4005)
- 21. IOS多线程编程一:概述(3914)
- 22. iOS UIKit :UIWindow(3760)
- 23. iOS数据库应用一:SQLite(3531)
- 24. iOS开源项目:AwesomeMenu(3305)
- 25. iOS Graphics 编程(2926)
- 26. android 游戏开发涉及到的API简单介绍(2883)
- 27. iOS开源项目:PullToRefresh(2808)
- 28. iOS开源项目:FlatUIKit(2745)
- 29. Ios多线程编程:NSOperation和NSOperationQueue(2321)
- 30. 网络编程基础(2235)
- 31. 游戏开发二:游戏的开发简介(2077)
- 32. Unix I/O总结(2076)
- 33. LIbGDX 示例Tests详解一:AccelerometerTest(1846)
- 34. iOS UIKit:UITableView(1504)
- 35. iOS开源项目:asi-http-request(1264)
- 36. iOS开源项目:DYNavigationController(1121)
- 37. c++处理数学相关的函数(1024)
- 38. iOS开源项目教程大合集(1003)
- 39. Android NDK开发二:Android NDK 101(960)
- 40. 游戏开发一:游戏种类简介(940)