Вы пишете программу Tetris на Java. Как бы вы создали свой дизайн класса в отношении следующих аспектов?
- Класс Piece:. Имеет один класс
Piece, с внутренним массивом, который определяет форму части, и имеет семь классовPiece, по одному для каждой части. Все они являются подклассами одного родового класса Piece. - Представление класса штук: Имеет массив из 4 экземпляров
Block, представляющий один квадрат части, и каждыйBlockсодержит свое местоположение на доске (в графических координатах) против. имеющий массив 4x4, гдеnullозначает, что там нет блока, а местоположение определяется формой массива. - Местоположение: Каждый
Blockв массивеPieceили в массивеBoardсохраняет свое местоположение по сравнению сPieceиBoardзнает местоположенияBlocks, которые содержат их. - Создание фрагмента: Имеет статический метод класса Piece
getRandomPieceили имеетPieceFactory, который вы делаете одним экземпляром, который имеет методgenRandomPieceв экземпляре. - Манипуляция текущей частью: Используйте шаблон
Proxy, так что все, что требует доступа к нему, просто использует прокси-сервер или имеет методgetCurrentPieceв классеBoardи вызов что в любое время вы хотите что-то сделать с текущей частью.
Это не домашнее задание. Я просто расстроен тем, чему учит интро-курс CS в моем колледже, и я хочу посмотреть, что считают люди в целом. Что можно было бы назвать "хорошим" дизайном ООП? Игнорируйте тот факт, что это для вступительного курса - как бы вы это сделали?