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

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


Принципы объектно-ориентированного дизайна (далее — ООД) — ядро объектно-ориентированного программирования (далее — ООП), но я вижу большинство Java-программистов, работающих с паттернами Singleton («Одиночка», например Singleton), «Декоратор» (Decorator) или «Наблюдатель» (Observer), и не уделяющих должного внимания изучению объектно-ориентированного анализа и дизайна. Конечно, важно изучать основы ООП: абстракция, инкапсуляция, полиморфизм и наследование, но, в то же время, не менее важно знать принципы дизайна, чтобы создавать хорошо структурированные и понятные продукты. Постоянно наблюдаю программистов, разработчиков различного уровня, которые или не слышали о принципах ООД SOLID, или просто не знают о преимуществах, которые тот или иной принцип дизайна дает, или как применить его в коде.

В итоге, всегда стремитесь к связности кода и хорошему дизайну в решении. Отличные примеры для изучения Java и ООД — открытый код Apache и Sun. Они демонстрируют, как принципы ООД должны использоваться в написании кода, в программах на Java. Иллюстрация применения паттернов в JDK: Factory, паттерн «фабрика» в классе BorderFactory, Что такое паттерн дизайна Factory..., паттерн Singleton, «одиночка», в классе Runtime RunTime, паттерн Decorator, «декоратор», в различных java.io классах. К слову, если вы заинтересованы практиковаться в java-коде, прочтите Effective Java, Joshua Bloch (например, Effective Java в переводе на русский), шедевр от автора Java API. Еще на тему ООД и паттернов рекомендую Head First Design Pattern (на русском Дизайны проектирования), а также Head First Object Oriented Analysis and Design (на английском OOAD). Эти книги помогут писать лучший код, используя преимущества принципов ООД.

Хотя лучший способ усвоить любые принципы — практиковаться и понимать последствия нарушения этих самых принципов, тема этой статьи — введение в принципы ООД для java-программистов, которые пока их не используют или только изучают язык. Я полагаю, каждый из озвученных принципов ООД (SOLID) достоин отдельной статьи с подробным объяснением сути, и я в дальнейшем постараюсь (написать эти статьи — прим. перев.), но сейчас приготовьтесь просто быстро пробежаться.