HTML Diff
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>