Составной шаблон проектирования, как ограничить компоненты от создания бесконечной рекурсии - PullRequest
2 голосов
/ 07 февраля 2020

В Composite Design Pattern, из-за его рекурсивной природы, я мог бы получить бесконечный l oop и создать цикл. Как я могу применить некоторые проверки правильности в моем коде, чтобы гарантировать, что я не создал циклов при вызове метода операции?

1 Ответ

1 голос
/ 07 февраля 2020

В общем смысле избегание цикла не указывается c для составного паттерна. Например, в книге «Банда четырех» ничего не говорится об этой проблеме. Это действительно зависит от клиентского кода, чтобы гарантировать, что составная структура является acycli c.

При этом на практике для шаблона Composite обычно нет необходимости совместно использовать объекты Composite. Поэтому ограничение, которое гораздо проще проверить, состоит в том, чтобы предотвратить добавление Компонента, который является составным и уже содержится в структуре.

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