Принципы ооп это: Шпаргалка по принципам ООП

Принципы ООП — Java программирование


Выделяют три принципа ООП:

  • Инкапсуляция — это свойство системы, позволяющее объединить данные и методы в классе, и скрыть детали реализации от пользователя.
  • Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. В Java класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.
  • Полиморфизм — буквально означает много форм. Это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта. “Один интерфейс, множество методов”. Реализации полиморфизма в языке Java — это перегрузка и переопределение методов, интерфейсы.

Выделяют еще один четвертый принцип:

  • Абстракция данных — это способ выделить набор значимых характеристик объекта, исключая из рассмотрения не значимые. Соответственно, абстракция — это набор всех таких характеристик.



Questions



Previous



Next


Read also:

  • Процедурное и объектно-ориентированное программирование
  • Классы и объекты
  • Конструктор
  • Ключевое слово this
  • Перегрузка
  • Стек и куча
  • Передача объектов в методы
  • Java varargs
  • Рекурсия
  • Сборщик мусора и метод finalize
  • Наследование
  • Ключевое слово super
  • Модификаторы доступа
  • Геттеры и сеттеры
  • Переопределение методов
  • Абстрактные классы и методы
  • Ключевое слово final
  • Слайды
  • Задания


Trustpilot


Trustpilot

Основные принципы ООП для начинающих


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


Объектно-ориентированное программирование основано на принципах и раньше считалось что их три: инкапсуляция, наследование и полиморфизм. Но сейчас в список стало принято добавлять еще абстракцию. Давайте рассмотрим их подробнее.


Определим что такое ООП


Объектно-ориентированное программирование, как уже ясно из названия работает с объектами. В жизни мы постоянно взаимодействуем с объектами, например машины, телефоны и даже такие простые как спички. У всех этих объектов есть свойства и характеристики с помощью которых мы с ними взаимодействуем. ООП в основе состоит из трех сущностей: класс, интерфейс, объект.


 


Класс


Предположим, вы решили создать шариковую ручку. У нее есть стержень, который состоит из полого корпуса, чернил и шарикового пишущего металлического наконечника расположенного на конце стержня, а так же корпус. Чернила для шариковых ручек создаются на масляной основе с добавлением пигментов. Можно и дальше детализировать материалы, размеры и т.д., но не будем углубляться. Важно что это все техническое описание шариковой ручки и в ООП это называется «класс», т.е. как в случае с ручкой, когда на основе описания можно создать реальную ручку, так же и в ООП класс служит для создания объекта.


Класс — в объектно-ориентированном программировании, представляет собой шаблон для создания объектов.


 


Объект


Вы отдали описание шариковой ручки на фабрику и она произвела их в большом количестве и каждая в точности повторяет ваш чертеж. Вы получили объект ручки, он с одной стороны уникален, но с другой полностью характеризуется чертежом по которому они были созданы. Так же и в объектно-ориентированном программировании – объект (экземпляр) – который имеет конкретное состояние и выделенную область памяти. Это как ручки, которые с одной стороны одинаковы, но в процессе использования в них остается разное количество чернил, они могут быть поцарапаны или сломаны.


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


 


Интерфейс


Интерфейс — то, что доступно при использовании объекта  извне. У ручки, например, это корпус, который можно держать и давить наконечником на бумагу и оставлять линии. У телефона старого – кнопки для набора номера, у автомобиля руль, переключатель АКПП, педали и так далее. Интерфейсы отличаются сложностью, например как в жизни от управления пультом от телевизора до управления самолетом.


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


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


Но теперь вернемся к принципам ООП


 


Инкапсуляция


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


Полиморфизм


Полиморфизм в объектно-ориентированном программировании – это возможность обработки разных типов данных, т. е. принадлежащих к разным классам, с помощью одной и той же функции, или метода.


Полиморфизм, если перевести, — это значит «много форм». Например, актер в театре может примерять на себя много ролей — или принимать «много форм».

Например актер Василий играет во многих спектаклях и у него есть метод «получить_задачу». Вот полиморфизм дает возможность через этот метод не только передавать конкретные роли, например Арлекино или Пьеро, но и такие задачи как «иди спать», «выпей кофе». В зависимости от разных типов входных данных будет выполняться разный код. 



Класс Актер(){

    метод получить_задачу(Роль){

        // код выполнения роли

     }

     метод получить_задачу(Еда){

          // код потребления еды

     }

}



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

Но еще есть иерархический полиморфизм. Это например когда например родитель курица и метод «голос» возвращает «кудах-кудах», а ребенок, который от курицы наследуется получает все методы родительского класса, но повторно описывает метод «голос», где возвращается «пипипи».


Наследование


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


Самый простой пример Фигура->Многоугольник->Треугольник


Мы знаем, что у фигуры есть привязка для отображения по осям x и y, а так же цвет заливки. Дальше фигуры могут иметь углы и могут не иметь, например Овал и Круг. Все фигуры, которые имеют углы логично наследовать от Многоугольника, например Квадрат, Треугольник.


То есть мы идем от общего, что есть у всех, через иерархию, к частному.  


Но наследование например Квадрата от Треугольника технически возможно, но является ошибкой, так же как например наследование Осьминога от Человека а не от Живое существо. 


Абстракция



 

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

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


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


 

Что такое ООП? | Принципы с примерами

Объектно-ориентированное программирование (или ООП) — это парадигма программирования, в которой программы пишутся и структурируются вокруг объектов, а не функций или логики. Объектно-ориентированное программирование (или ООП) — это парадигма программирования, в которой программы пишутся и структурируются вокруг объектов, а не функций или логики. Объектные процедуры могут получать доступ и изменять данные в объекте.

Существует много языков ООП, самые популярные из которых основаны на классах, где объекты будут экземплярами класса. Класс — это контейнер для данных и процедур, также известный как элементы данных и функции-члены. Рассмотрим пример объекта в качестве автомобиля. У автомобиля есть такие атрибуты, как цвет, название марки, запас топлива и т. д., а также методы для представления поведения автомобиля, такие как запуск, ускорение, торможение и т. д. Класс представляет собой план атрибутов и методов, а не занимать место до тех пор, пока не будет создан объект для этого класса.

Пример :

класс автомобиля
{
char name[20]; // имя и цвет являются атрибутами
char color[20];
public void start(){} // start — это метод
};
void main()
{
car c1; //c1 — это объект
}

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

Принципы ООП

Четыре основных принципа объектно-ориентированного программирования — это инкапсуляция, абстракция, наследование и полиморфизм.

1. Инкапсуляция

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

2. Абстракция

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

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

3. Наследование

Часто объекты похожи по функциональности, имеют общую логику, но различаются в остальном. Итак, как нам повторно использовать общую логику и отделить другую логику? Это может быть достигнуто путем наследования. При наследовании мы создаем новый класс, называемый дочерним классом, который является производным от класса, называемого родительским классом, таким образом формируя иерархию классов. Дочерний класс повторно использует поля данных и методы, требуемые от родительского класса, и реализует свою уникальную функциональность самостоятельно.

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

4. Полиморфизм

Полиморфизм — это способность принимать более одной формы. Например, предположим, что у нас есть родительский класс и несколько его дочерних классов. Теперь мы хотим использовать атрибуты как родительского, так и дочернего классов, так как же это будет достигнуто? Это можно сделать с помощью полиморфизма. В полиморфизме абстрактные объекты выполняются несколькими способами. Это дает возможность использовать класс точно так же, как родительский класс, так что не возникает путаницы со смешением типов классов, и каждый дочерний класс продолжает сохранять свои методы такими, какими они были. Это можно сделать, повторно используя родительский интерфейс, чтобы дочерний класс мог реализовать эти методы в своей собственной версии.

Преимущества и недостатки объектно-ориентированного программирования

Ниже приведены преимущества и недостатки

Преимущества

Ниже приведены преимущества:

  • Можно продемонстрировать реальную идею, поскольку все в ООП рассматривается как объект.
  • Поскольку мы используем концепцию инкапсуляции, программы легче тестировать и поддерживать.
  • Более быстрая разработка кода, поскольку мы разрабатываем классы параллельно, а не последовательно.
  • ООП обеспечивает большую безопасность благодаря абстракции данных. Внешний мир не может получить доступ к скрытым данным.
  • Возможность повторного использования может быть достигнута за счет использования уже написанных классов.
Недостатки

Ниже приведены недостатки:

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

Как знание ООП может помочь в карьерном росте?

Многие из основных современных языков, таких как Java и Ruby, используют концепции объектно-ориентированного программирования. Языки ООП помогают в написании программного обеспечения для таких приложений, как мобильные, веб-приложения и игровые приложения. В этих областях высокие заработки, как и лучшие возможности трудоустройства для программистов в этих областях. С основами ООП легко переходить к различным технологиям и языкам, что расширяет наши карьерные перспективы. Одним из недостатков в этом случается опыт. Обычно компании ищут практический опыт работы с языками и концепциями ООП, поэтому рекомендуется практиковаться в процессе обучения.

Заключение

Объектно-ориентированное программирование упрощает для нас процесс программирования. Он имеет много значений, таких как возможность повторного использования, эффективность и обслуживание кода. Хотя поначалу может быть трудно понять концепции ООП, уверяю вас, результат того стоит. Эта статья помогла упростить эти понятия!

Рекомендуемая статья

Это руководство к тому, что такое ООП? Здесь мы обсудили концепции и принципы с преимуществами и недостатками. Вы также можете просмотреть другие предлагаемые нами статьи, чтобы узнать больше –

  1. Является ли Hadoop открытым исходным кодом?
  2. Что такое наследование Java?
  3. Что такое многопоточность в C#?
  4. Что такое веб-службы ASP.Net?

10 принципов объектно-ориентированного проектирования (ООП), которые должны знать Java-программисты

Принципы объектно-ориентированного проектирования являются ядром ООП-программирования, но я видел, как большинство Java-программистов гоняются за шаблонами проектирования, такими как шаблон Singleton и шаблон Decorator. , или паттерн наблюдатель, и не уделяет достаточного внимания обучению Объектно-ориентированный анализ и проектирование . Важно изучить основы объектно-ориентированного программирования, такие как абстракция, инкапсуляция, полиморфизм и наследование. Но в то же время не менее важно знать принципы объектно-ориентированного проектирования. Они помогут вам создать чистый и модульный дизайн, который будет легко тестировать, отлаживать и поддерживать в будущем.

Я регулярно встречал Java-программистов и разработчиков с разным уровнем опыта, которые либо никогда не слышали об этих принципах проектирования ООП и SOLID , или просто не знает, какие преимущества дает тот или иной принцип проектирования и как применять эти принципы проектирования в кодировании.

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

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

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

Вы также можете присоединиться к всеобъемлющему курсу объектно-ориентированного проектирования, например Принципы SOLID: введение в архитектуру и дизайн программного обеспечения Суджита Джорджа на Udemy. Это очень помогло мне в моем понимании и применении этих принципов.


10 Принципов объектно-ориентированного проектирования и проектирования SOLID для программистов

Хотя лучший способ изучения любого принципа или шаблона проектирования — это пример из реальной жизни и понимание последствий нарушения этого принципа проектирования, темой этой статьи является Знакомство с Принципы объектно-ориентированного проектирования для Java-программистов, которые либо не знакомы с ним, либо находятся на этапе обучения.

Я лично считаю, что каждый из этих принципов проектирования ООП и SOLID нуждается в статье, чтобы объяснить их ясно, и я обязательно попытаюсь сделать это здесь, а пока просто приготовьтесь к быстрой поездке на велосипеде по городу принципов проектирования: )

1. СУХОЙ (не повторяйтесь)

Наш первый принцип объектно-ориентированного проектирования — СУХОЙ, как следует из названия. СУХОЙ (не повторяйтесь) означает не писать повторяющийся код, вместо этого использовать абстракцию для абстрагирования общих вещей в одном месте. Если у вас есть блок кода более чем в двух местах, подумайте о том, чтобы сделать его отдельным методом, или, если вы используете жестко запрограммированное значение более одного раза, сделайте их общедоступными конечными константами.

Преимущество этого принципа объектно-ориентированного проектирования заключается в обслуживании. Важно не злоупотреблять, дублирование не для кода, а для функциональности. Это означает, что если вы использовали стандартный код для проверки OrderID и SSN, это не означает, что они одинаковы или останутся такими же в будущем.

Используя стандартный код для двух разных функций или вещей, вы навсегда связываете их, и когда ваш OrderId меняет свой формат, ваш код проверки SSN сломается.

Так что остерегайтесь такой связи и просто не объединяйте ничего, что использует похожий код, но не связано. Вы также можете ознакомиться с курсом «Основы архитектуры программного обеспечения и шаблонов проектирования » на языке Java на Udemy, чтобы узнать больше о написании правильного кода и передовых методах проектирования системы.

2. Инкапсулируйте изменения

В области программного обеспечения постоянно только одно: «Изменение». Итак, инкапсулируйте код, который, как вы ожидаете или подозреваете, будет изменен в будущем. Преимущество этого принципа проектирования ООП заключается в том, что его легко тестировать и поддерживать правильно инкапсулированный код.

Если вы программируете на Java, то следуйте принципу создания переменных и методов приватными по умолчанию и шаг за шагом увеличивайте доступ, например, от приватных до защищенных, а не общедоступных.

Несколько шаблонов проектирования в Java используют инкапсуляцию. Шаблон проектирования Factory является одним из примеров инкапсуляции, которая инкапсулирует код создания объекта и обеспечивает гибкость для последующего внедрения нового продукта без влияния на существующий код.

Кстати, если вы хотите узнать больше о шаблонах проектирования в Java и объектно-ориентированном программировании, вы должны проверить этот курс Design Pattern Library Pluralsight. Это одна из лучших коллекций шаблонов проектирования и советов по их использованию в реальном мире.

3. Открытый и закрытый принцип проектирования

Классы, методы или функции должны быть открыты для расширения (новые функции) и закрыты для модификации. Это еще один прекрасный принцип SOLID-дизайна, который не позволяет кому-то изменить уже испытанный и протестированный код.

В идеале, если вы добавляете только новые функции, ваш код должен быть протестирован, и в этом состоит цель открытого закрытого принципа проектирования. Кстати, принцип Open-Closed — это «О» от аббревиатуры SOLID.

4. Принцип единой ответственности (SRP)

Принцип единой ответственности — это еще один принцип проектирования SOLID, который обозначает букву «S» в аббревиатуре SOLID. В соответствии с SRP не должно быть более одной причины для изменения класса, или класс всегда должен обрабатывать одну функциональность.

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

Вы также можете ознакомиться с курсом SOLID Principles of Object-Oriented Design and Architecture  на Udemy, чтобы получить больше реальных примеров и узнать о шаблонах, основанных на этом принципе.

5. Принцип внедрения или инверсии зависимостей

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

Существует несколько способов реализации Внедрение зависимостей , например, с помощью инструментария байт-кода, который используется в некоторых фреймворках АОП (аспектно-ориентированного программирования), таких как AspectJ, или с использованием прокси-серверов, как это используется в Spring. См. этот пример шаблона проектирования IOC и DI, чтобы узнать больше об этом принципе проектирования SOLID. Он представляет собой букву «D» в аббревиатуре SOLID.

6. Предпочтение композиции наследованию

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

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

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

7. Принцип замещения Лискова (LSP)

В соответствии с принципом подстановки Лискова, подтипы должны заменять супертип, т. е. методы или функции, использующие тип суперкласса, должны без проблем работать с объектом подкласса».

 LSP тесно связан с принципом единой ответственности и Принцип разделения интерфейса . Если класс обладает большей функциональностью, то подкласс может не поддерживать некоторые функции и нарушать LSP.0002 Чтобы следовать принципу проектирования LSP SOLID , производный класс или подкласс должен расширять функциональные возможности, но не уменьшать их. LSP представляет собой букву «L» в аббревиатуре SOLID. Если вас интересует более реальный пример, то курс SOLID Principles of Object-Oriented Design на Pluralsight — отличный курс для начала.

Кстати, вам понадобится членство в Pluralsight, чтобы получить доступ к этому курсу, который стоит около 29 долларов в месяц или 299 долларов в год (скидка 14%).

Если у вас нет членства в Pluralsight, я рекомендую вам получить его, потому что это позволяет вам получить доступ к их 5000+ онлайн-курсам по всем последним темам, таким как разработка интерфейса и серверная часть, машинное обучение и т. д. Это также включает интерактивные викторины, упражнения и самые последние сертификационные материалы.

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

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

8. Принцип разделения интерфейсов (ISP)

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

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

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

9. Программирование интерфейса не реализовано

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

Поэтому используйте тип интерфейса для переменных, типы возвращаемого значения метода или тип аргумента методов в Java.

Это рекомендуется во многих книгах по Java, в том числе в книге по эффективным Java и шаблонам проектирования Head First.

10. Принципы делегирования полномочий

Не делайте все самостоятельно, делегируйте это соответствующему классу. Классическим примером принципа делегирования является метод equals() и hashCode() в Java. Чтобы сравнить два объекта на равенство, мы просим сам класс сделать сравнение, а не класс Client, выполняющий эту проверку.

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

Резюме

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

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

Если вы ищете отличный курс для начала, я предлагаю вам присоединиться к курсу «Шаблоны проектирования программного обеспечения: передовой опыт для разработчиков программного обеспечения»   на Educative, текстовом интерактивном портале онлайн-обучения, где вы можете правильно практиковать шаблоны. в вашем браузере.

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

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

Суть в том, что профессиональные программисты всегда должны стремиться к очень связному и свободно связанному решению, коду или дизайну. Глядя на открытый исходный код от Apache и Google, можно найти отличные способы изучения принципов проектирования Java и ООП.

Они показывают нам, как принципы проектирования должны использоваться в кодировании и программах Java. Java Development Kit следует многим принципам проектирования, таким как Factory Pattern в классе BorderFactory, шаблон Singleton в классе Runtime, шаблон Decorator в различных классах java.io.

Если вы заинтересованы в изучении принципов и паттернов объектно-ориентированного программирования, вы можете посмотреть мою другую любимую книгу Head First Object-Oriented Analysis and Design , отличную книгу и, вероятно, лучший материал, доступный по объектно-ориентированному анализу и дизайн.

Немногие программисты знают эту книгу, потому что ее часто затмевает ее более известный двоюродный брат «Head First Design Pattern» Эрика Фримана, в котором больше рассказывается о том, как эти принципы объединяются для создания шаблона, который можно использовать непосредственно для решения известных проблем.

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

Кстати, если вас действительно больше интересуют методы написания кода на Java, прочитайте Effective Java 3rd Edition Джошуа Блоха, драгоценного камня, созданного парнем, написавшим Java Collection API.

Прочее Ресурсы по Java и программированию s, которые могут вам понравиться

  • 10 вещей, которые Java-программист должен изучить в 2021 году
  • 10 книг, которые должен прочитать каждый программист
  • 10 курсов для углубленного изучения DevOps
  • Дорожная карта для разработчиков Java на 2021 год
  • Мои любимые курсы по архитектуре программного обеспечения
  • 10 советов по улучшению навыков программирования
  • 10 инструментов, которые должен знать каждый разработчик программного обеспечения
  • 21 технический навык, который разработчики Java должны освоить в 2021 году
  • 5 курсов для углубленного изучения архитектуры программного обеспечения
  • 20 библиотек и APIS, которые должен знать Java-программист
  • 7 лучших книг для изучения шаблонов проектирования
  • 10 лучших языков программирования для изучения в 2021 году
  • 10 статей, которые должен прочитать каждый программист
  • 10 фреймворков и библиотек Java и веб-разработчики должны изучить

Спасибо, что прочитали эту статью.

This entry was posted in Популярное