ООП в C# c точки зрения Алана Кея? Часто говорят, что современное ООП - это не ООП в том виде, в котором его задумывали отцы-основатели. Я посмотрел основные принципы ООП с точки зрения Алана Кея и не могу понять, чего он хотел. Приведу конкретные примеры:
1) Всё является объектом
Ну. В C# вроде всё так и есть. Даже если выполнить: int a= 1, то потом можно вызвать метод ToString(), хотя это вроде как просто цифра.
2) Вычисления осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие. Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия
Да. Этого нет.
3) Каждый объект имеет независимую память, которая состоит из других объектов
Вот тут вообще не понимаю, о чём речь
4) Каждый объект является представителем класса, который выражает общие свойства объектов (таких, как целые числа или списки)
Так и есть. Если создать два объекта класса, то им будут доступны одинаковые методы.
5) В классе задаётся поведение (функциональность) объекта. Тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия
Стоп. Разве это не то, что я написал в пункте 4?
6) Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определённого класса, автоматически доступны любому классу, расположенному ниже в иерархическом дерев
Это вообще безумие. Если у меня есть класс Dog, описывающий собаку, то от какого мифического единого общего класса она должна наследоваться?
Извиняюсь за простыню текста

21 Авг 2019 в 07:00
252 +1
0
Ответы
1

, но мне кажется, что Алан Кей не совсем правильно понимал основные принципы ООП, по крайней мере с точки зрения современного программирования на языке C#.

1) Действительно, в C# все является объектом, даже простые типы данных такие как int.
2) В C# также используется концепция обмена сообщениями между объектами, хотя не так явно, как в других языках программирования, например, Smalltalk.
3) Понятие "независимой памяти, состоящей из других объектов" звучит странно и не совсем применимо к реальным сценариям программирования на C#.
4) Да, каждый объект является экземпляром класса, который определяет его свойства и методы.
5) Поведение объектов действительно задается в классе, и все объекты этого класса могут выполнять одни и те же действия.
6) В C# также применяется концепция наследования и иерархий классов, но не всегда необходимо их организовывать в единую древовидную структуру.

В целом, можно сказать, что основные принципы ООП в C# соответствуют общепринятым стандартам и могут быть успешно применены в практике программирования на этом языке.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир