Здравствуйте, AlScan, Вы писали:
AS>...
AS>Но возникает вопрос: как вписать в эту схему (иерархию) атрибуты? Ведь у каждого вида абстракции свое количество атрибутов и различный их состав. Если впихнуть отображение атрибутов в класс реализации то это не особо хорошо т.к. в каждом классе реализации должны храниться описания ВСЕХ возможных атрибутов (т.к. пользователь может выбрать что угодно) и потом нарушается правило «один объект – одна задача».
Можно понимать 'пользователь может выбрать что угодно' т.о., что пользователь послает интерфейсу комнаты сообщение вида 'я нахожусь там-то, делаю действие 'взять''. Действия тоже объединены в иерархию вида
Action
|
______________ _____________
| | | | |
Get Put Use Hit ...
В ответ на действие комната возвращает его результат, т.е., например, на Get, про которое говорилось выше, может вернуться объект Crown(взяли с трона корону).