Давайте предположим, что у меня есть одноэлементное представление шахматной доски, состоящей из двух ячеек массива с двумя размерами. Иногда я хочу, чтобы это представление рассматривалось как доска строк, иногда как столбцы, иногда как сетки, но каждый из этих случаев должен работать на одном и том же базовом синглтоне доски
Итак, я должен реализовать 4 класса:
class CheesBoard : singleton consist of just a stright dd array of cells
class CheesBoardAsGrids : consist of that same cells but presented by grids
class CheesBoardAsRows : strigtforward as above but rows
class CheesBoardAsColumns : ... you already get it
И я не знаю, какие отношения должны быть между ними, чтобы сделать его наиболее читабельным и пригодным для повторного использования.
например: я не могу унаследовать от CheesBoard, потому что он синглтон