Организовать Java-код в пакеты равнозначно шаблонам / стилю архитектуры? - PullRequest
0 голосов
/ 02 мая 2018

Я так растерялся, я искал лучшие практики для структурирования своего проекта, я имею в виду лучший способ организовать код Java в пакеты. Кроме того, я читал об архитектурных стилях и архитектурных шаблонах, где некоторые страницы говорят, что они одинаковы, а другие говорят, что они разные, поэтому я сомневаюсь, во-первых, архитектурный стиль и шаблон архитектуры одинаковы? Затем, когда вы говорите об организации вашего Java-кода в пакеты, то же самое, когда вы говорите: «Я ищу лучший шаблон архитектуры для моего Java-проекта». Мне действительно нужно это понять, я читаю и читаю, но до сих пор не понимаю. и, наконец, извините, если вы не можете понять, что я публикую здесь, мой английский плохой, и мне нужно больше практиковаться.

1 Ответ

0 голосов
/ 02 мая 2018

С https://herbertograca.com/2017/07/28/architectural-styles-vs-architectural-patterns-vs-design-patterns/

Архитектурный стиль:

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

Component-based
Monolithic application
Layered
Pipes and filters
Event-driven
Publish-subscribe
Plug-ins
Client-server
Service-oriented

Архитектурный рисунок:

Шаблон - это повторяющееся решение повторяющейся проблемы. В этом случае архитектурных моделей, они решают проблемы, связанные с Архитектурный стиль. Например, «какие у нас будут классы и как будут ли они взаимодействовать, чтобы реализовать систему с определенным набором слоев ", или" что модули высокого уровня будут иметь в нашем Сервис-ориентированная архитектура и как они будут общаться "или" как наша архитектура клиент-сервер будет иметь много уровней «.

Архитектурные шаблоны оказывают значительное влияние на базу кода, большинство часто влияет на все приложение в горизонтальном направлении (т.е. как структурировать код внутри слоя) или вертикально (т.е. как запрос обрабатывается от внешних слоев до внутренних слоев и обратно). Примеры архитектурных моделей:

Three-tier
Microkernel
Model-View-Controller
Model-View-ViewModel

Для меня это представляет собой дихотомию, аналогичную интерфейсу и реализации на уровне класса.

Другими словами, Стиль - это цель, а Шаблон - то, как вы достигаете этой цели

Пакеты Java служат двум целям, связанным с этим. Они используются для организации вашего кода и обеспечивают инкапсуляцию на уровне библиотеки с помощью public vs package-private.

Если вы используете стиль клиент-сервер, вам понадобится пакет для сервера и пакет для клиента, который можно использовать независимо. Сервер и клиент, скорее всего, будут использовать общие POJO, которые вы захотите поместить в пакет, который будет разделен между ними.

Если вы используете стиль плагина, как тогда, вам понадобится пакет для общего интерфейса и загрузчика, но любые реализации будут идти в своем собственном пакете. Сравните с SLF4J и его реализацией. И пакет загрузки плагина, и каждая реализация плагина должны совместно использовать небольшой пакет, содержащий интерфейс плагина.

Теперь, если вы выбираете стиль обслуживания, тогда у вас может быть только один пакет верхнего уровня для всей вашей услуги, но вы можете организовать подпакеты на основе разных доменов, например, пакет для базовой логики, который можно тестировать модулем без проблем с IO, и пакет, который связан с взаимодействием с IO. Другими словами, основной интерфейс связан только с объектами и методами, но пакет ввода-вывода занимается синтаксическим анализом запросов и печатью ответов.

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