Объектная
by Алан Кей
Объектно-ориентированная парадигма программирования (ООП) организует код вокруг объектов, которые объединяют данные и методы, что способствует инкапсуляции, наследованию и полиморфизму — основным принципам ООП.
Происхождение
Алан Кей считается одним из основоположников объектно-ориентированного программирования. Он ввел ключевые концепции ООП в 1960-х и 1970-х годах, работая над языком Smalltalk.
Исторический контекст
Идея организации данных и методов в объекты впервые возникла в языке Simula (разработчики — Оле-Йохан Даль и Кристен Нюгорд) в 1960-х годах. Однако Алан Кей развил и популяризировал эту парадигму в Smalltalk, предложив основные концепции — инкапсуляцию, наследование и полиморфизм.
ООП возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны.
ООП предлагает более высокоуровневую организацию кода по сравнению с процедурным программированием, связывая данные и функции, которые работают с этими данными, в единые объекты.
Система состоит из объектов и взаимодействия между объектами
В ООП программа состоит из объектов, каждый из которых представляет собой экземпляр класса — шаблона, описывающего структуру данных и методы для работы с ними. Объекты взаимодействуют друг с другом, отправляя сообщения (вызывая методы), что делает систему гибкой и расширяемой.
Три принципа ООП
- Инкапсуляция Инкапсуляция скрывает внутреннюю реализацию объекта и предоставляет доступ к данным только через определённые методы, что улучшает безопасность и устойчивость кода.
- Полиморфизм Полиморфизм позволяет объектам разных классов обрабатывать данные через один и тот же интерфейс, что упрощает управление сложностью программы.
- Наследование Наследование позволяет создавать новые классы на основе существующих, что способствует повторному использованию кода и созданию иерархий классов.
Паттерны GRASP
General Responsibility Assignment Software Patterns — общие шаблоны распределения ответственностей. Эти шаблоны помогают определить, какие обязанности должны быть возложены на каждый класс и объект в системе, обеспечивая правильную организацию кода.
Шаблоны GoF
Gang of Four (Банда четырёх) разработала шаблоны проектирования, которые предлагают готовые решения для типичных задач в ООП. Эти шаблоны обеспечивают повторяемость и стандартизацию кода, что делает его более поддерживаемым и расширяемым.
Примеры языков
- Smalltalk
- Java
- C++
- Ruby
объектная парадигма