Что-то я третий день в раздумьях, хочу переписать свою прогу по красоте. Есть класс Board с доской для настольной игры, хочу реализовать функцию eval(Board b), но понимаю что одной реализации оценочной функции мне может не хватить. Окей, пилю класс Eval, наследуюсь от него EvalSimple, но эта иерархия классов не видит внутренней реализации Board, а открывать необходимые данные через публичный интерфейс честно говоря не хочется. Как обычно поступают в таких случаях?