0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Java - язык, который сильно ориентирован на классы. Практически для любой задачи нужно создавать классы, особенно той, которая связана с данными. В этом уроке мы поговорим о том, с какими классами вам придется встречаться в коде реальных приложений. Для демонстрации будут использоваться классы, в которых встречаются не изученные на текущий момент конструкции. На них не стоит обращать внимание, но без них мы бы не смогли ничего показать.</p>
1
<p>Java - язык, который сильно ориентирован на классы. Практически для любой задачи нужно создавать классы, особенно той, которая связана с данными. В этом уроке мы поговорим о том, с какими классами вам придется встречаться в коде реальных приложений. Для демонстрации будут использоваться классы, в которых встречаются не изученные на текущий момент конструкции. На них не стоит обращать внимание, но без них мы бы не смогли ничего показать.</p>
2
<p><em>Считается, что это из-за объектной-ориентированности Java, на самом деле это не совсем так. Java, скорее, классово ориентирована. В мире существует немало ООП языков, которые значительно отличаются от Java по устройству, а в некоторых из них даже нет классов</em></p>
2
<p><em>Считается, что это из-за объектной-ориентированности Java, на самом деле это не совсем так. Java, скорее, классово ориентирована. В мире существует немало ООП языков, которые значительно отличаются от Java по устройству, а в некоторых из них даже нет классов</em></p>
3
<p>Когда говорят про классы, обычно говорят про предметную область, например, если взять Хекслет, это будет онлайн-обучение. В этой области есть такие понятия как курс, группа, ученик, проект, задание, квиз и многое другое. В коде все эти понятия представлены классами со своими наборами свойств и методов.</p>
3
<p>Когда говорят про классы, обычно говорят про предметную область, например, если взять Хекслет, это будет онлайн-обучение. В этой области есть такие понятия как курс, группа, ученик, проект, задание, квиз и многое другое. В коде все эти понятия представлены классами со своими наборами свойств и методов.</p>
4
<p>Это важная часть приложения для которой используются классы, но далеко не единственная. Подавляющее большинство классов в приложениях относятся к другим категориям. Если открыть<a>наш репозиторий</a>с приложением на Spring Boot, который вы будете использовать в более поздних курсах, то можно увидеть, что там встречаются совершенно разные классы:</p>
4
<p>Это важная часть приложения для которой используются классы, но далеко не единственная. Подавляющее большинство классов в приложениях относятся к другим категориям. Если открыть<a>наш репозиторий</a>с приложением на Spring Boot, который вы будете использовать в более поздних курсах, то можно увидеть, что там встречаются совершенно разные классы:</p>
5
<ul><li>DataInitializer</li>
5
<ul><li>DataInitializer</li>
6
<li>RsaKeyProperties</li>
6
<li>RsaKeyProperties</li>
7
<li>JacksonConfig</li>
7
<li>JacksonConfig</li>
8
<li>PostsCommentsController</li>
8
<li>PostsCommentsController</li>
9
<li>PostCommentParamsDTO</li>
9
<li>PostCommentParamsDTO</li>
10
<li>ResourceNotFoundException</li>
10
<li>ResourceNotFoundException</li>
11
<li>UserMapper</li>
11
<li>UserMapper</li>
12
<li>PostRepository</li>
12
<li>PostRepository</li>
13
<li>PostService</li>
13
<li>PostService</li>
14
<li>JWTUtils</li>
14
<li>JWTUtils</li>
15
<li>User</li>
15
<li>User</li>
16
</ul><p>Всего же в коде около 30 классов, и только 4 из них связаны с предметной областью. Какие мы можем выделить категории?</p>
16
</ul><p>Всего же в коде около 30 классов, и только 4 из них связаны с предметной областью. Какие мы можем выделить категории?</p>
17
<h2>Исключения</h2>
17
<h2>Исключения</h2>
18
<p>Ошибки в Java тоже представлены классами. Для каждого типа ошибки создаются свои классы. Обычно это делается в библиотеках или встроено в саму Java, но бывает, что приходится создавать подобные классы для ошибок и в прикладном коде.</p>
18
<p>Ошибки в Java тоже представлены классами. Для каждого типа ошибки создаются свои классы. Обычно это делается в библиотеках или встроено в саму Java, но бывает, что приходится создавать подобные классы для ошибок и в прикладном коде.</p>
19
<h2>Data-классы</h2>
19
<h2>Data-классы</h2>
20
<p>Категория, в которую попадают объекты для хранения или передачи данных куда-то дальше. Например, в объектах этих классов может содержаться конфигурация сервиса, которую можно при необходимости читать.</p>
20
<p>Категория, в которую попадают объекты для хранения или передачи данных куда-то дальше. Например, в объектах этих классов может содержаться конфигурация сервиса, которую можно при необходимости читать.</p>
21
<p>Data-классы используются и для данных, которые приходят в программу снаружи, например через формы на сайте. Чтобы работать с этими данными внутри приложения, сначала из них нужно сделать объект с данными. И то же самое в обратную сторону, если нам нужно передать данные наружу, то они формируются из специальных объектов, которые нужны только для этой задачи. В Java объекты таких классов называют<em>Data Transfer Object (DTO)</em>.</p>
21
<p>Data-классы используются и для данных, которые приходят в программу снаружи, например через формы на сайте. Чтобы работать с этими данными внутри приложения, сначала из них нужно сделать объект с данными. И то же самое в обратную сторону, если нам нужно передать данные наружу, то они формируются из специальных объектов, которые нужны только для этой задачи. В Java объекты таких классов называют<em>Data Transfer Object (DTO)</em>.</p>
22
<p>Главная особенность data-классов в том, что они не содержат никакого поведения, это просто хранилище данных для постоянного, как в случае конфигурации, или DTO для временного использования.</p>
22
<p>Главная особенность data-классов в том, что они не содержат никакого поведения, это просто хранилище данных для постоянного, как в случае конфигурации, или DTO для временного использования.</p>
23
<h2>Сервисы</h2>
23
<h2>Сервисы</h2>
24
<p>Это классы, объекты которых, используются для выполнения однотипных задач вокруг какого-то сервиса или механизма. Например, у нас может быть сервис для отправки писем или sms.</p>
24
<p>Это классы, объекты которых, используются для выполнения однотипных задач вокруг какого-то сервиса или механизма. Например, у нас может быть сервис для отправки писем или sms.</p>
25
<p>Часто сервисы строятся вокруг каких-то внешних систем, например PayPal, для работы с платежами.</p>
25
<p>Часто сервисы строятся вокруг каких-то внешних систем, например PayPal, для работы с платежами.</p>
26
<h2>Служебные объекты</h2>
26
<h2>Служебные объекты</h2>
27
<p>Большая и разнообразная категория, в которую, например, входят классы для взаимодействия с другими программами, такими как базы данных, очереди, кеши и многое другое.</p>
27
<p>Большая и разнообразная категория, в которую, например, входят классы для взаимодействия с другими программами, такими как базы данных, очереди, кеши и многое другое.</p>
28
<h2>Утилиты</h2>
28
<h2>Утилиты</h2>
29
<p>Какие-то вспомогательные объекты для решения разнообразных задач, например, обработки строк, преобразования Markdown в HTML и тому подобное. Утилиты почти всегда похожи на обычные функции из других языков программирования.</p>
29
<p>Какие-то вспомогательные объекты для решения разнообразных задач, например, обработки строк, преобразования Markdown в HTML и тому подобное. Утилиты почти всегда похожи на обычные функции из других языков программирования.</p>
30
<h2>Остальное</h2>
30
<h2>Остальное</h2>
31
<p>Есть немало и других классов, которые не попали ни под одну из категорий выше. Со всем этим многообразием вы будете знакомиться не только во время обучения, но и уже в реальной работе, причем постоянно.</p>
31
<p>Есть немало и других классов, которые не попали ни под одну из категорий выше. Со всем этим многообразием вы будете знакомиться не только во время обучения, но и уже в реальной работе, причем постоянно.</p>