Я читал этот вопрос на SO: Framework vs. Toolkit vs. Library, где объясняется Разница между фреймворком и библиотекой. Общее мнение состоит в том, что основное отличие заключается в инверсии управления, поэтому у вас есть горячие точки в структуре, к которым вы прикрепляете функциональность своего приложения (по сути, вы выбираете между наследованием/шаблоном/тяжелым весом или композицией/стратегией/легким для достижения этого).
Хорошо, теперь мне интересно, в чем тогда разница между фреймворком и контейнером? Я видел следующее определение контейнера (от Рода Джонсона): «Контейнер — это фреймворк, в котором запускается код/объекты приложения». И именно это меня смутило. Я думал, что это более или менее определение любого фреймворка :) Я имею в виду, что если вы используете IoC в качестве параметра, который делает разницу между библиотекой и фреймворком (он же вы называете библиотеку, но фреймворк называет вас), то не означает ли это, что больше или менее какая-либо структура удовлетворяет приведенному выше определению контейнера?
Заранее спасибо.