Рассмотрим аналогию.
Вы находитесь в сети быстрого питания, где фаст-фуд, который вы на самом деле получаете, довольно сложен. Это не только сложно, но только определенные люди могут принять ваш заказ на определенные виды пищи. Теперь вы этого не знаете, потому что менеджер магазина решил оставить одного человека за одним кассовым аппаратом. Но если вы посмотрите на него внимательно, это на самом деле продвинутая голограмма, потому что она "абстрактная" . Абстрактный заказчик. Теперь, когда вы говорите с голограммой и размещаете свой заказ, компьютер с голограммой перенаправляет (полиморфизм) этот заказ на имплантат в мозг человека, принимающего заказ. Имплант заставляет человека на самом деле ударить в порядке реального регистра. Есть несколько таких 'конкретных' управляемых разумом людей, которые упорядочены голограммой. Теперь, когда настоящий человек наносит удары по порядку, он отправляется на задний компьютер, где есть сборочная линия, или «строитель» , для каждого типа производимой еды. Заказы отправляются на различные сборочные линии в зависимости от человека и его кассового аппарата.
Итак, голограмма - это абстрактная фабрика, контролируемые разумом люди на регистрах - это конкретные фабрики, а сборочные линии - строители. Таким образом, вы можете визуализировать поток абстрактной фабрики, работающей С по шаблону компоновщика. Иногда лучше посмотреть, как шаблоны проектирования работают вместе, чтобы увидеть, чем они отличаются.
Если вы ищете дополнительный кредит, попробуйте реализовать это с помощью дженериков. Это не требует столько кода, сколько вы думаете.