У меня есть вопрос о двух операциях, которые вы обычно видите на примере составной диаграммы классов.
* GetDescendents
* GetChild (int)
Типичным примером являются файлы и каталоги.придерживаться этого.Допустим, интересующей операцией является Size, поэтому File имеет реальный размер, а Directory имеет Size, полученный из рекурсивной итерации GetDescendents.Все идет нормально.Мой вопрос касается использования клиентом GetDescendents.Скажем, вам нужны файлы в каталоге, которые являются изображениями для определенной операции.Поэтому на практике вы используете некоторую комбинацию GetDescendents и Children для возврата imageFiles (в зависимости от того, хочет ли клиент все вложенные imageFiles или только на корневом уровне).
Итак, вопрос номер один, не так ли?скорее всего, есть метод GetImageFiles для композита, в отличие от того, чтобы клиент понял это?И если предположить, действительно ли GetDescendents когда-либо практично выставлять вызывающим клиентам (например, ImageViewer) вне композиции?
Второй вопрос о GetChild (int);такое int порядковый индекс позиции для возврата одного ребенка?Уровень глубины в GetDescendents?Каков пример того, как клиент будет использовать этот метод?
Cheers,
Berryl