Тимур Машнин - Введение в объектно-ориентированный дизайн с Java

Введение в объектно-ориентированный дизайн с Java
Название: Введение в объектно-ориентированный дизайн с Java
Автор:
Жанры: Программирование | Компьютерная справочная литература | Книги о компьютерах
Серии: Нет данных
ISBN: Нет данных
Год: 2022
О чем книга "Введение в объектно-ориентированный дизайн с Java"

Эта книга ориентирована на тех, кто уже знаком с языком программирования Java и хотел бы углубить свои знания и изучить объектно-ориентированный анализ и проектирование программного обеспечения. Вы познакомитесь с основными принципами и паттернами объектно-ориентированного дизайна, используемыми при разработке программных систем Java. Вы научитесь моделировать системы Java с помощью UML диаграмм, познакомитесь с основными понятиями и принципами объектно-ориентированного подхода, изучите порождающие, структурные и поведенческие шаблоны проектирования. Вы узнаете, как создавать модульное, гибкое и многоразовое программное обеспечение, применяя объектно-ориентированные принципы и шаблоны проектирования.

Бесплатно читать онлайн Введение в объектно-ориентированный дизайн с Java


Введение

Что такое дизайн и архитектура программного обеспечения?



И как это может улучшить программные продукты?

Давайте рассмотрим сценарий.

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

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

Вы даже не знаете, с чего начать.

Это все признаки того, что проект не был хорошо разработан с самого начала.

Или, допустим, вы сейчас работаете над персональным проектом.

Когда вы начинали, вы не были уверены, какая конкретно функциональность должна быть реализована, но тем не менее вы начали кодирование.

Для вас не имело значения, что код будет неорганизованным, потому что вы были единственным, кто работал над проектом.

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

Чего не произошло бы, если бы вы правильно и хорошо с самого начала спроектировали бы свой продукт.

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

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

Итак, в чем разница между дизайном программного обеспечения и архитектурой программного обеспечения?

Роль дизайнера программного обеспечения или архитектора программного обеспечения может сильно отличаться от компании к компании.

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

В некоторых компаниях могут работать отдельные дизайнеры или архитекторы.

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

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

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

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

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

Подумайте об этом, как о проектировании здания.

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

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

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

И основная задача заключается в том, чтобы выяснить, чего хочет клиент, тогда можно двигаться дальше.

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

И архитектура важна, потому что, если вы ошибетесь, ваш проект не удастся.

Все просто.

Мы знаем это в области строительства, и мы это знаем в области программного обеспечения.

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

При этом самая большая проблема, с которой мы сталкиваемся, – это понимание проблемы клиента.

Что он действительно хочет сделать?

И во многих случаях клиент фактически не знает, что он хочет делать. Он приходит лишь с частичным пониманием, смутным чувством, что он может сделать что-то лучше.

И одна из первых задач состоит в том, чтобы помочь ему лучше понять его проблему.

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

Архитектор программного обеспечения похож на архитектора здания. И он отвечает за общую концептуальную целостность проекта.

Возможно, вы слышали термин «объектно-ориентированное моделирование».

Что это?

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

И в зависимости от задачи многие концепции становятся отдельными объектами в программном обеспечении.

Подумайте об объектах.

Вокруг нас все объекты.

Почему вы должны использовать объекты для представления вещей в вашем коде?

Это способ держать ваш код организованным, гибким и многоразовым.

Объектный подход создает организованный код, содержа связанные детали и конкретные функции в разных, легко доступных местах.

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

Давайте рассмотрим, как может выглядеть объектно-ориентированное моделирование.

Рассмотрим, например, помещение для семинаров.

Первый объект, который мы идентифицируем, является сама комната.

В комнате есть такие детали, как номер комнаты и места для сидения.

Также мы можем идентифицировать объекты, которые содержатся в этой комнате.

Существует множество физических объектов, такие как стул, стол, проектор и белая доска.

Каждый из этих физических объектов может быть представлен объектами в программном обеспечении.

И существуют конкретные детали, связанные с каждым объектом.

Проектор имеет характеристики, связанные с его производительностью, такие как разрешение и яркость.

И объекты также могут иметь индивидуальные обязанности или поведение.

Например, проектор принимает видеопоток и отображает изображение.

Вы можете думать о разработке программного обеспечения как о процессе, который берет задачу и создает решение с помощью программного обеспечения.

И как правило, это итеративный процесс, при этом каждая итерация берет набор требований для реализации и тестирования и в конечном итоге создается полное решение.

Многие разработчики стремятся сразу кодировать, несмотря на то, что не полностью понимают, что программировать в первую очередь.


С этой книгой читают
Python является наиболее популярным языком программирования, используемым для объектно-ориентированного программирования. И конечно, Python – это интерактивный язык программирования, который предоставляет широкий спектр возможностей для создания GUI (Graphical User Interface) и разработки настольных приложений. В этой книге вы познакомитесь с различными фреймворками Python для создания настольных приложений с графическим интерфейсом пользователя,
Эта книга познакомит с практическим использованием языка MetaQuotes Language 5 (MQL5) программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках с помощью торговой платформы MetaTrader 5.Вы научитесь создавать MQL5 приложения, используя как процедурное программирование, так и объектно-ориентированное программирование.Познакомитесь с общей структурой и свойствами техничес
Apache Hadoop – это платформа для распределенной обработки больших наборов данных на кластерах компьютеров с использованием простых моделей программирования. В этой книге вы познакомитесь с общей архитектурой платформы, компонентами стека, такими как HDFS и MapReduce, приложениями Hadoop.
Хотите понять, как основные поисковые системы ранжируют Ваш сайт в своих результатах поиска и как привлечь трафик? Научитесь поисковой оптимизации SEO.С этой книгой Вы познакомитесь с основными элементами поисковой оптимизации и изучите основные стратегии и тактики SEO для продвижения веб-сайтов, а также тактики, которых следует избегать, чтобы предотвратить наказание со стороны поисковых систем.Вы узнаете, как создать эффективную стратегию SEO и
Цель книги – познакомить читателей с существующими подходами и решениями в области моделирования бизнес-архитектуры предприятия. В книге освещаются различные аспекты данной проблематики, в том числе такие вопросы как базовые подходы к моделированию и возможности современных инструментальных средств.Особое внимание уделяется специфике организации проектов по разработке моделей бизнес-архитекуры. На основе практического опыта реализации проектов по
В этой книге автор, сам прошедший путь от разработчика до менеджера в сфере IT, рассказывает неочевидные моменты, которые являются критически важными для правильного управления. Почему разработчики увольняются после повышения зарплаты? Как делать FixedPrice проекты? Почему Scrum не упрощает менеджмент? Книга содержит ответ на эти и многие другие вопросы. В книге есть много баек, которые показывают тяжёлую, но интересную жизнь менеджера в разработ
Это не учебное пособие по информатике для старшеклассников, абитуриентов, студентов и аспирантов с двухзначным IQ. Это научно фантастическое эссе, главным героем которого является «межплатформенный искусственный разум». Занимаясь более 30 лет информационными технологиями, автор твердо убежден, что сегодня в мире нет более важной темы, чем эта. Ибо именно через искусственный интеллект на Земле наступить то самое Облачное Царствие, о котором так мн
Эта книга состоит из двух частей: художественной, где рассказывается удивительная история мальчика, захотевшего стать белым хакером (хотя в ней, конечно же, есть и девочка, а также его друзья), и научно-популярной, в которой дается обучение (она так и называется в книге, ты увидишь ее, когда начнешь читать) программированию и разным другим компьютерным вещам, очень нужным в современном мире. Но на самом деле это единая история, позволяющая задума
Создано космическое королевство Асгардия. Открывается новая эра человечества. Мы не лучшие – мы будущие. Так провозглашено в Конституции Асгардии.
Путешествие в новую жизнь продолжается. Кендис и Крис со своими друзьями исследуют следующую планету их тура Кристаллис и наслаждаются свободой. Но жизнь в этом богатом обществе только кажется сказкой. Вот уже год молодые парни, только прибывшие на планету, исчезают бесследно. Один из пропавших – бойфренд Лоры. Если она хочет его увидеть, то ей придется самой заняться расследованием этого дела. Связано ли это с деятельностью одной из лабораторий
– Я – Мария Дарницкая. Его женщина. – улыбнулась она дежурной улыбкой. В отличие от меня была абсолютно спокойной. Меня же начинало потряхивать. Фамилию нашего мэра все знают, а это его дочь получается? Не жена же заявляется поздно вечером, практически ночью, домой к Зеленцову и объявляет себя его женщиной. Та, удовлетворившись произведённым эффектом, продолжает меня рассматривать, словно под лупой. – И что же? Посмотрели? – я сложила руки на гру
– Алина будет жить здесь со мной. Я встретил её в госпитале в Белгороде и я хочу жениться на ней. – Что? – у меня словно отняли дар речи, я не могла поверить в услышанное, и если бы мне сейчас сказали, что я больна: вижу и слышу галлюцинации, я бы безоговорочно поверила. – Подадим на развод. – продолжал Костя. – Квартиру делить не будем, я останусь тут, а на твою долю предлагаю купить тебе однушку. – Ты меня бросаешь? – запоздало заторможено спро