我目前正在研究一种用C++编写的小型2D游戏引擎,但我现在正面临一个守护进程 - 我很擅长设计一个实际可行的"类系统".在我的脑海中有一个封锁,使我无法看到我应该在哪里使用课堂以及我不应该在哪里.我正在阅读一篇关于引擎设计的文章,它的目的是使用'State'类来管理不同游戏条目的状态(我使用的是int).它还表明游戏的所有对象(不是io /视频/声音等)都来自Renderable或NonRenderable类.这很聪明.我已经知道这是一种聪明的方式 - 我的意思是,Java中的每个对象都是基类Object吗?聪明,我知道!为什么我不那样做?我需要阅读什么才能真正融入这种心态?
另一个例子.我正在参加Ruby的夏季课程(非常简单),我们应该设计一个露营地点.简单!因此,露营地是一系列"地块",每个都有一个电量计,用于衡量客人消耗的电量.我的设计是三个类,一个用于露营 - 反过来使用Guest和Plot类的数组.我的老师建议我多上课.WTF(!)是我的第一个想法,在哪里,什么课程?在我看来,一切都是一个阶级 - 直到我意识到,也许规范应该是一个类?现在,仪表是Plot类中的整数.
我想学习如何为我的问题提出面向对象的解决方案 - 而不仅仅是如何让最明显的东西进入课堂!
提示/书籍/文章/博客?
我在CS学习了两年,并且多年来一直作为业余爱好进行编程!我只是被卡住了 - 这让我无法创建任何更大的软件!
我希望得到一些提示,以帮助我突破我认为这些年后的程序编程的坏习惯.每当我尝试在OOP中完成一个项目时,我最终都会恢复到程序化.我想我并不完全相信OOP(尽管我认为我听说过它的一切都很好!).
所以我想我经常执行的常见编程任务的任何好的实际例子,例如用户身份验证/管理,数据解析,CMS/Blogging/eComs都是我经常做的事情,但我无法得到我的围绕如何在OOP中进行操作并远离程序,特别是因为我构建的系统往往工作和工作良好.
有一件事我可以看作是我的开发的一个缺点,我经常重用我的代码,它经常需要更多的重写和改进,但我有时认为这是我的软件开发的自然演变.
但我想改变!对我的同事们,帮助:)关于如何摆脱这个令人讨厌的习惯的任何提示?