我正在为生物信息学的学生教授C#。我刚刚开始学习OOP原理。我不得不一次又一次地解释这些术语,因为当我使用技术术语时,它们会感到无聊。最后,我决定用他们的语言与他们交流(我的意思是举个生物学相关术语的例子)。
对我来说,很难将类、对象、事件、委托、属性、多态性、继承、封装、序列化、反射等术语与生物学相关。如果有人开始给出至少一些术语的例子,我可以框定其余的。
发布于 2009-09-22 14:37:12
这样的例子可能是人为的,并不能揭示OO编程的全部含义。学生将陷入基于Dog Is-A Mammal的多态和继承的不切实际的使用中。
可以把一个类看作一个物种,把一个对象看作一个有机体,但是什么是静态类和静态方法呢?在他们的教育中,这些隐喻概念应该很快被丢弃,以免它削弱他们对一种语言的使用,而这种语言比对其他经验领域的隐喻要丰富得多。
例如,静态工厂方法Rabbit::CreateRabbit与创建新兔子的现实世界完全无关-这可能更像是一个实例方法,它只对带有委托回调的雄性兔子有效,该回调将在28天后触发。如果他们听懂了这个笑话,他们可能已经准备好毕业了。
https://stackoverflow.com/questions/1460415
复制相似问题