Каким должно быть ООП?
Как-то сильно перегружено это ваше ООП.
Поверх банальной отправки сообщений и протоколов, навернуто множество концепций.
На собеседованиях стандартный вопрос: Без чего не может быть ООП? Ожидают услышать про «три кита».
Или: Назовите основные принципы ООП. Ожидаемый ответ: SOLID.
Более продвинутые спрашивают про GRASP.
Лет
Декламация GoF на память — так же часть ООП. При том под «знанием паттернов» подразумевают, как правило, не столько умение применять сколько рассказать главу из книги.
.
Люди сами доходят вот до таких мыслей (Контекст: dou.ua/...forums/topic/8518/#381338 ):
Скажем так абстрактный класс, это некий вид объектов который может происходит от более широкого скажем рода. По этому если есть какойто свойство присуще роду в целом то и не надо говорить о нем при расмотрении какого то вида.
Во втором варианте мы говорим что со следующим объектом мы должны иметь определенный способ работы. И если он присущ роду то нам стоит явно указать что какойто определенный метод должен быть определен у вида, хотя он присущ роду.
То есть наворачивают абстракции.
В реальной работе часто встречал массовое использование запрета наследованния и попытки __максимально__ скрыть члены класса (минимум публичного, максимум приватного) с применением пары паттернов для достижения цели. И это при разработке прикладного приложения, а не какой-то убер-библиотеки.
То есть ограничивая возможности использования в пользу философских концепций и прикрывая это фразами «обезопасить пользователя от ошибок в использовании компонента».
.
В общую концепцию засовывают кучи всего, что надо было бы оставить как надстройку, тем самым делая не модульную/гибкую систему, а гигантский монолитный кусок ... ну вы поняли чего.
.
Может это все следствия расцвета все тех же
Может что-то другое?
.
Собственно вопрос:
Что на ваш взгляд, является необходимыми навыками/знаниями, чтобы сказать: «Я знаю ООП».
.
P.S. Буду удивлен если первый коммент будет по теме и не будет содержать вброс про ФП :)
Найкращі коментарі пропустити