Класс против пакета против модуля против компонента против контейнера против сервиса против платформы в мире Java [закрыто]

Я новичок в мире Java (7 лет на низком уровне C).

Когда я начал читать сайты, связанные с Java:

http://wiki.apidesign.org/wiki/Main_Pagehttp://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/

Я смущен существующей терминологией:

класспакетмодульсоставная частьконтейнероказание услугфреймворкПлатформа

Я нашел много ресурсов об определении терминов (и многое другое):

Фреймворк против Инструментария против БиблиотекиРазница между рамкой и контейнером?Каковы контейнеры в JavaОпределение контейнера Javahttp://martinfowler.com/articles/injection.html (Инверсия управляющих контейнеров и шаблон внедрения зависимостей)http://www.cafeaulait.org/course/week8/36.html (Что такое контейнер AWT?)http://en.wikipedia.org/wiki/Web_containerhttp://netbeans.org/features/platform/ (Платформа NetBeans)Что подразумевается под «структурой приложения»?Что такое программный каркас?В чем разница между фреймворком и библиотекой?В чем разница между библиотекой классов и фреймворкомhttps://stackoverflow.com/questions/11576018/what-is-the-difference-between-a-javascript-framework-and-a-libraryВ чем основное различие между фреймворком и инструментарием?http://blog.orderharmony.com/2011/07/libraries-vs-frameworks.htmlhttp://www.javacodegeeks.com/2012/04/frameworks-vs-libraries-as-inheritance.htmlРазница между библиотекой, платформой и фреймворком?В чем разница между платформой и фреймворком?в чем разница между фреймворком и платформойРазница между модулем, библиотекой и фреймворком

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

Объясните, пожалуйста, что означают эти термины в общих чертах (может быть один класс платформы, какое количество модулей требуется для создания контейнера и т. Д.).

ОБНОВЛЕНИЕ 2019 Изhttps://www.artima.com/lejava/articles/reuse3.html (мое выделение)

Билл Веннерс: В чем разница между фреймворком, платформой и инструментарием и каковы разные требования гибкости?

Эрих Гамма: СПлатформа Я ассоциируюдолгосрочная стабильность, Это безопасно строить на вершине платформы. Платформа делаетсовместимость гарантии. Каркасы часто не имеют такого качества, и я виделмного рамок неудачи в отношениистабильность, Если вы посмотрите на Eclipse, да, он включает в себя фреймворки, наборы инструментов и предоставляет API-интерфейсы платформы. Все это поставляется в виде плагинов.Фреймворки абстрагируются и обеспечивают более высокий уровень функциональности по умолчанию, Для этогорамки должны быть под контролем, Эта потеря контроля может привести к тому, что иногда называют каркалитом.

Билл Веннерс: И инструментарий не потому, что ...

Эрих Гамма: С участиеминструментарии высоздавать и вызывать объекты инструментария и регистрировать слушателей для реагирования на события, Выв контроле. Фреймворки пытаются контролировать и сообщать вам, когда что делать,Инструментарий дает вамстроительные блоки но вам остается управлять.

Другая цитата отвечает на мой наивный вопрос, сколько классов делает что-то каркасом:

https://www.artima.com/lejava/articles/reuse.html

Эрих Гамма: ... JUnit - это, например, небольшой фреймворк. Это «Привет, мир» фреймворков. У вас естьTest, TestCase, TestSuite и отношения определены. Кроме того, вы подключаетесь к фреймворкам, создавая подклассы. Они используют так называемый голливудский принцип «не звоните нам, мы вам позвоним». Фреймворк позволяет вам определить ваше собственное поведение и перезвонит вам, когда придет ваша очередь что-то делать. То же самое с JUnit, верно? Он перезванивает, когда хочет выполнить тест для вас, но все остальное делается в рамках.

Ответы на вопрос(2)

Ваш ответ на вопрос