В настоящее время я работаю над небольшим 2D-движком на С++, но теперь я сталкиваюсь с демоном - я сосать разработку "системы классов", которая действительно работает. В моей голове есть блокада, которая запрещает мне видеть, где я должен использовать класс, и где я не должен. Я читал статью о дизайне двигателя и предполагал использовать класс "State" для управления состоянием разных игровых записей (я использовал int). Он также предположил, что все объекты для игры (не io/video/sound и т.д.) Происходят из классов Renderable или NonRenderable. Это умный. Я уже знаю, что это был разумный способ сделать это - я имею в виду, что каждый объект в Java имеет базовый объект Object справа? Умный, я это знаю! Почему я так не сделал? Что я должен прочитать, чтобы действительно войти в это мышление?
Другой пример. Я беру этот летний курс в Ruby (очень простой), и мы должны спроектировать кемпинг. Просто! Таким образом, кемпинг представляет собой коллекцию "сюжетов", каждая из которых имеет электрический манометр для измерения того, сколько энергии потребляет гость. Мой проект состоял из трех классов, один для кемпинга, который, в свою очередь, использовал массивы классов Guest и Plot. Мой учитель предложил использовать больше классов. WTF (!) Была моей первой мыслью, где, какие классы? По-моему, все было классом, пока я не понял, может быть, калибра должна быть классом? В настоящее время калибровочным является Integer в классе Plot.
Я хочу узнать, как придумать объектно-ориентированные решения моих проблем, а не только, как сделать наиболее очевидный материал в классах!
Советы/книги/статьи/блоги?
Я два года занимаюсь степенью коллажа в CS и много лет программирую как хобби! Я "просто" застрял - и это мешает мне создавать больше программного обеспечения!