Отображение ориентации объекта C # с помощью BioInformatics - PullRequest
2 голосов
/ 22 сентября 2009

Я преподаю C # для студентов биоинформатики.Просто я начал Принципы ООП.Я должен объяснить термины снова и снова, потому что они скучны, пока я использую технический термин.В конце концов я решил передать их на их языке (я имею в виду привести пример из термина, связанного с биологией).

Мне трудно назвать термин класс, объект, событие, делегаты, атрибуты, полиморфизм, наследование, инкапсуляция, сериализация, отражение и т. д. с биологическим.Если кто-то начнет приводить пример хотя бы нескольких терминов, я могу сформулировать остальные.

1 Ответ

8 голосов
/ 22 сентября 2009

Такие примеры могут быть придуманы и не способны полностью осмыслить последствия ОО-программирования. Студенты застрянут на нереалистичном использовании полиморфизма и наследования на основе млекопитающего Dog Is-A.

Можно рассматривать класс как вид, скажем, и объект как организм, но тогда что такое статические классы и статические методы? Такие метафорические концепции следует отбрасывать довольно быстро в их образовании, чтобы не нанести вред их использованию языка, который гораздо богаче метафор в других областях опыта.

Важно помнить, что, хотя ОО полезен для моделирования реального мира, он также является только внутренним представлением, и иногда требуются случаи, когда программная реализация не будет иметь буквальное соответствие 1-1 реальности.

Например, статические фабричные методы Rabbit :: CreateRabbit вообще не связаны с реальным миром создания новых кроликов - что, вероятно, больше похоже на метод экземпляра, действительный только для кролика-самки, берущего кролика-самца с обратным вызовом делегата который выстрелит через 28 дней. Если они получат эту шутку, они, вероятно, готовы получить высшее образование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...