Совсем недавно начал изучать объектно-оринетированый язык C#, и в процессе изучения уже кучу раз сталкивался с разными терминами касательно его парадигм. Итак, какие же основные парадигмы ООП и что именно они означают?
Тема парадигм ООП очень доступно и развёрнуто раскрывается на протяжении всего курса C# Essential. Попробую вкратце разъяснить основы.
Парадигм ООП всего около 6:
- Инкапсуляция;
- Наследование;
- Полиморфизм;
- Абстракция;
- Повторное использование;
- Посылка сообщений.
Как правило выделяют эти 4: инкапсуляция, наследование, полиморфизм и абстракция.
Инкапсуляция - сокрытие реализации программных частей для безопасности, как правило, путём использования модификаторов доступа.
Наследование - создание нового объекта на основе старого.
Полиморфизм - побочный эффект наследования, возможность дополнять объект функционалом (как правило, классическим полиморфизмом считают замещение, переопределение методов).
Абстракция - придание объекту характеристик, которые чётко выделяют его на фоне остальных. Абстрагирование в ООП - это выделение значимых характеристик объекта, исключая незначимые. Асбтракция - это набор именно таких характеристик.