ООП — передача сообщений в С#

Каков пример концепции ООП «Передача сообщений» в С# (вызов методов/параметров передачи/событий запуска/обработки событий/???) и почему это называется передачей сообщений?


person user366312    schedule 27.07.2009    source источник
comment
Хм? Это реальный вопрос? потому что ты сам себе ответил. В основном потому, что так общаются объекты; поэтому это называется передачей сообщений.   -  person mmx    schedule 27.07.2009
comment
Да это так. Я открыл для себя концепцию. И я здесь, чтобы убедиться в этом.   -  person    schedule 27.07.2009


Ответы (3)


Вызовы методов.

Это называется передачей сообщений, чтобы отличить его от императивного понятия «вызов функции» и укрепить идею о том, что принимающий объект решает, что делать. На сайте вызова вы просто говорите получателю «сообщение».

Примером могут служить методы, абстрактные в классе и реализованные в подклассах; или реализации метода интерфейса. Когда вы звоните, например. GetEnumerator() через переменную типа IEnumerable, вы не знаете на месте вызова, какой код должен выполняться на самом деле.

person millimoose    schedule 27.07.2009

Это называется передачей сообщений, чтобы отличить его от передачи параметров.

Основным преимуществом передачи сообщения является то, что вы можете изменить содержимое сообщения без изменения подписи метода, получающего сообщение.

Другая заключается в том, что несколько методов могут нуждаться в одной и той же информации, поэтому ее можно определить и изменить в одном и том же месте.

person Shiraz Bhaiji    schedule 27.07.2009

Некоторые считают, что передача сообщений и вызовы методов — это разные вещи. Мы используем этот термин взаимозаменяемо, но его значение тонкое.

В smalltalk передача сообщений была ограничена временем выполнения, и у объекта был способ определить, может ли он обработать сообщение, которое не было явно определено как метод. Ruby называет этот метод method_missing. Методы в C++, в частности, привязываются во время компиляции, и нет возможности динамически добавлять способы обработки большего количества сообщений. В C# 4.0 есть смесь, как только вы начинаете использовать динамику.

Есть еще одна школа передачи сообщений, Erlang считает, что все аргументы сообщения должны быть отделены от состояния. То есть они либо неизменяемые, либо копии.

person Ball    schedule 27.07.2009
comment
Я довольно часто слышал последнее определение: сообщения представляют собой вызовы отдельных методов, которые могут быть многопоточными или обрабатываться вне машины. В таких языках, как C++ и Java, эта функциональность не существует, поэтому термины имеют тенденцию быть синонимами. - person Bill K; 27.07.2009