Комментарии 4
Приятная и привычная всем реализация ООП - как в C++, Java, C# и TypeScript. Вот Rust этим похвастаться не может.
Ну не знаю, вы бы "философскую часть" вычитали, что ли, перед публикацией...
Все по тому же Бобу Мартину, каждая из парадигм что‑то забирает и не дает ничего взамен. Структурное программирование забирает оператор goto, и накладывает ограничение на прямую передачу управления. Функциональное программирование забирает возможность присваивания и накладывает такое же ограничение. Объектно‑ориентированное программирование накладывает ограничение на косвенную передачу управления. Можно ли забрать у программиста что‑то еще? Наверное нет. А раз больше ничего забрать нельзя, то и парадигм новых не предвидится.
По Бобу Мартину структурная парадигма - запрет на прямую передачу управления (т.е. на безусловный переход, ака goto), ООП - запрет на прямое присваивание, ФП - запрет на присваивание как таковое. Что такое "ограничение на косвенную передачу управления" - решительно непонятно, какой-то бессмысленный конструкт.
ООП (объектно‑ориентированное программирование) — парадигма разработки, в которой присутствуют объекты и присутствуют классы, к которым эти объекты относятся.
Вот на это могу только процитировать:
«Я придумал термин «объектно-ориентированный», и могу сказать, что я не имел в виду С++». (с) Алан Кэй, конференция OOPSLA, 1997.
ООП как парадигма ничего общего с классами не имеет, вместо них вполне могут быть, например, прототипы.
Вот честно, если часть непосредственно по Дарту еще представляет какую-то ценность, то эта многословная преамбула про высокие материи, написанная с точки зрения эпического непонимания предмета обсуждения - жесть. Лучше просто выкинуть: и статья покороче получится (кто-то ее до конца осилит), и косяков поменьше будет.
Хотя, и в дарт-части...
В Dart существуют и другие методы наследования (
implements
,mixin
)
Ну камон, ну в каком месте реализация интерфейса и примеси - наследование?
Доброе утро! Спасибо за то, что осилили эту простыню до конца, и за Ваш фидбек!
1.) Касательно трактования ограничения, которое накладывает ООП - Роберт Мартин, "Чистая Архитектура" издательства "Питер" 2024, Глава 3, страница 44. Взял информацию о косвенной передаче именно оттуда
2. ) Согласен с определением ООП, а также с приведенными в пример прототипами: для меня это было в новинку. Определение поправил, думаю теперь должно быть лучше
3.) Согласен с тем, что пролог вышел непозволительно долгим и, по большей части, ненужным. От него избавился, буду иметь в виду на будущее
4.) Согласен с implements и mixin, тут даже сказать не смогу, какая муха меня ужалила такое написать. Возможно сказался непозволительно большой объем статьи. Опять же, учту
Еще раз спасибо за фидбек, буду учитывать тейки при написании будущих статей 🤝
ООП в Dart