Здравствуйте, AlScan, Вы писали:
AS>Здравствуйте, bolshik, Вы писали:
AS>Спасибо за хороший совет . Он пригодится в дальнейшем, когда пользователь будет как-то хулиганить в комнате . Пока же ситуация проще: внутри комнаты он может только смотреть на все кругом и больше ничего.
AS> Я писал 'пользователь может выбрать что угодно' в смысле выбрать любой вид комнаты (тронный зал, галерею и пр.) и любую реализацию (например эльфийскую в форме шара или людскую с четырьмя стенами ). Сами классы реализаций выполняют только одну задачу: рисуют комнату соответствующего вида (например с шестью стенами) а вот атрибуты (колонны, троны и пр.) они не рисуют. Не рисуют т.к. в этом случае можно легко комбинировать виды комнат с разными реализациями. А атрибуты это уже другое не хочу привязывать к виду комнаты т.к. у тронного зала эльфов может быть их пять, людей – вообще нет.
AS> Вопрос в том что кому-то надо доверить отрисовку и атрибутов но я не могу решить кому.
Так пусть и колонны, троны и т.д. будут уравнены в правах с 'комнатами'. Т.е. и 'комнаты', и 'колонны' представлены в виде интерфейса, который умеет отрисовывать себя, только конкретная имплементация этого интерфейса('комната') умеет агрегировать в себя другие имплементации этого же интерфейса. См. Gof Composite и отчасти POSA Whole-Part