Це погано мати 2 класи, які потрібні один одному?
Це трохи кодовий запах , але можна залишити його. Якщо це простіший і швидший спосіб активізувати свою гру, перейдіть до цього. Але майте це на увазі, оскільки є хороший шанс, що вам доведеться в якийсь момент переробити його.
Річ C ++ полягає в тому, що кругові залежності не складатимуться так легко , тому може бути кращою ідеєю позбутися їх, а не витрачати час на фіксацію вашої компіляції.
Дивіться це питання на SO для отримання ще кількох думок.
Ви б назвали [мій дизайн] поганим дизайном?
Ні, це все-таки краще, ніж ставити все в один клас.
Це не так здорово, але насправді досить близько до більшості реалізацій, які я бачив. Зазвичай у вас є клас менеджера для ігрових станів ( будьте обережні! ) Та клас візуалізації, і цілком звичайно, що вони є однотонними. Отже, кругова залежність "прихована", але потенційно вона є.
Крім того, як вам сказали в коментарях, трохи дивним є те, що класи станів гри виконують певну візуалізацію. Вони повинні просто містити інформацію про стан, а візуалізацією повинен займатися візуалізатор або якийсь графічний компонент самих ігрових об'єктів.
Тепер може бути ідеальний дизайн. Мені цікаво побачити, чи приносять інші відповіді одну приємну ідею. І все-таки ви, напевно, той, хто зможе знайти найкращий дизайн для вашої гри.