m1r42
Бьюсь об заклад, что на весь этот текст вы потратили больше времени чем потратили бы на набросок программы.
В программе смысла нет, в тексте - есть. Когда сюда будут приходить периодически реально интересующиеся тем, что такое ООП и что такое не ООП, то я буду по своим тегам находить эти сообщения свои и направлять этих интересующихся на эти свои сообщения, чтобы это всё по второму, третьему, десятому разу не писать. Поэтому я их так готовлю хорошо, вычищаю от ошибок, проясняю неясности и так далее.
А чтобы программу делать, мне нужно сидеть сначала UML-диаграмму классов делать, которая поможет оптимально подобрать классы, на которые эту игру можно разложить, чтобы она нигде не закупорилась в процессе разработки потом. Ты-то думаешь, что код на лету придумывается, просто берёшь, придумываешь и всё, и готово, а разработка она не так происходит. Поспешишь - людей насмешишь, вот это главный принцип в разработке. Чик-чик и в продакшен - это вариант для тех, кто работает не для себя. Написал и забыл, не работает - и похрен. Но у них и опыт соответствующий накапливается - опыт в стиле чик-чик. А нормального опыта у них нет. Почему вот у них нихера никакого софта своего и нет в итоге. Он может двадцать лет работать где-то, где за него частенько что-то дописывали другие там разные приходящие и уходящие, а потом всем рассказывать, что он разрабатывал то, разрабатывал это, только забывать упоминать при этом, что он не целиком это разрабатывал и концепцию тоже не придумывал там всю, а что там он сделал треть только, если не четверть, а концепцией вообще какой-то другой архитектор занимался там, который как раз и специализировался на всём этом, на всех этих методах анализа и проектирования, прочитал там десяток книжек чисто по теме. Про GoF-шаблоны они тоже любят поговорить. А почему? А потому что это лёгкая хрень и её легко выучить. Только вот они подменяют понятия и пытаются ООП представить в виде такого просто набора GoF-шаблонов и всё, как будто эти GoF-шаблоны центральное место какое-то в ООП занимают. А это не так, это просто мелочёвка. ООП - тема обширная и её не так-то просто освоить.
Ты вот когда делаешь объект, придумываешь его, какие у тебя критерии того, какие в нём методы должны быть, а каких методов в нём быть не должно? Вот ты знаешь про атомарность методов? что методы должны быть атомарны? Это, знаешь, всё не так просто. Вроде пишешь, вроде у тебя всё получается типа само собой, а потом раз и ты видишь, что у тебя объектик поехал в какой-то ситуации. Поначалу было не видно и всё было нормально, а тут раз и при каком-то его применении он явно не подходит, потому что что-то у него не то с методами, как будто там неполный набор этих методов или как будто эти методы друг друга цепляют и эти методы ещё и поменять нельзя, потому что придётся весь объект удалять, а он уже где-то там используется именно в таком виде именно с такими методами. Это всё не так просто.