我正在为生物信息学学生教授 C#。刚刚我开始了 OOP 原则。我必须 一遍又一遍地解释这些术语,因为当我使用专业术语时他们感到无聊。 最后我决定用他们的语言与他们交流(我的意思是举个例子 生物学相关术语)。
对我来说,很难创造术语类、对象、事件、委托(delegate)、属性、多态性, 继承、封装、序列化、反射等与生物相关。如果一些 一个人开始给出至少一些术语的例子,我可以构建其余部分。
最佳答案
此类示例可能是人为设计的,无法引出 OO 编程的完整含义。学生将陷入基于 Dog Is-A Mammal 的多态性和继承的不切实际的使用。
人们可能会将类视为一个物种,比如说将对象视为一个有机体,那么什么是静态类和静态方法呢?这种隐喻概念应该在他们的教育中迅速丢弃,以免削弱他们对比其他经验领域的隐喻丰富得多的语言的使用。
重要的是要记住,尽管 OO 对现实世界建模很有用,但它也只是一种内部表示,有时需要软件实现与现实不具有文字上的 1-1 对应关系。
例如,静态工厂方法 Rabbit::CreateRabbit 与制造新兔子的现实世界完全无关——这可能更像是一个实例方法,只对一只雌性兔子有效,并通过委托(delegate)回调接收一只雄性兔子它将在 28 天后开火。如果他们听懂了这个笑话,他们可能已经准备好毕业了。
关于c# - 使用生物信息学映射 C# 对象方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460415/