Компонентная архитектура - это прием, который часто используется при разработке игр, а в разработке веб-приложений незаслуженно заброшен. Между тем, он позволяет создавать очень изолированные компоненты, которые могут использоваться во множестве мест и легко покрываются тестами. Это позволяет относительно относительно легко создавать сложные системы, я это успешно применила на практике и хочу показать на примерах из продакшена. Скажи "нет" полиморфическим if-кам!