Вы пишете программу 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 в моем колледже, и я хочу посмотреть, что считают люди в целом. Что можно было бы назвать "хорошим" дизайном ООП? Игнорируйте тот факт, что это для вступительного курса - как бы вы это сделали?