У этого шаблона есть имя? - PullRequest
2 голосов
/ 05 июня 2010

Отказ от ответственности: я пытаюсь научиться правильному программированию / проектированию ОО, поэтому я довольно новичок в этом.

Я думаю, это общий вопрос о шаблонах проектирования, но я приведу свой примерна игровом движке или чем-то, что отображает объекты на экране.

Рассмотрим следующее:

иерархия http://img31.imageshack.us/img31/9633/diagrame.png

Как такое разделение между физическими объектами (например,, кубы, сферы и т. д.) и механизм рендеринга должен быть реализован в расширяемой форме?

Этот дизайн не сделан из камня, и, возможно, я с самого начала что-то неправильно понял.Мне просто любопытно, как такая проблема решается в реальном коде.

Ответы [ 4 ]

3 голосов
/ 05 июня 2010

Это будет шаблон адаптера , или он может быть реализован как шаблон стратегии .

1 голос
/ 05 июня 2010

Рендер не должен быть расширен объектами, которые он должен нарисовать. (Только мое мнение) объект в вашем мире НЕ является средством визуализации, но средство визуализации использует объекты.

Итак, у вас может быть:

Интерфейс IRenderer, который определяет функцию рисования (BasicObject).

Тогда ваши объекты просто расширяют BasicObject для обработки рендерером / a.

Как я сказал, только мое мнение. :)

0 голосов
/ 07 июня 2010

Я бы использовал здесь шаблон Visitor.

Где Посетитель - это средство визуализации, а Посетившее - это 3D / Объект. Я бы также сделал 3D / Object составным.

0 голосов
/ 05 июня 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...