c# - 使用生物信息学映射 C# 对象方向

标签 c# oop

我正在为生物信息学学生教授 C#。刚刚我开始了 OOP 原则。我必须 一遍又一遍地解释这些术语,因为当我使用专业术语时他们感到无聊。 最后我决定用他们的语言与他们交流(我的意思是举个例子 生物学相关术语)。

对我来说,很难创造术语类、对象、事件、委托(delegate)、属性、多态性, 继承、封装、序列化、反射等与生物相关。如果一些 一个人开始给出至少一些术语的例子,我可以构建其余部分。

最佳答案

此类示例可能是人为设计的,无法引出 OO 编程的完整含义。学生将陷入基于 Dog Is-A Mammal 的多态性和继承的不切实际的使用。

人们可能会将类视为一个物种,比如说将对象视为一个有机体,那么什么是静态类和静态方法呢?这种隐喻概念应该在他们的教育中迅速丢弃,以免削弱他们对比其他经验领域的隐喻丰富得多的语言的使用。

重要的是要记住,尽管 OO 对现实世界建模很有用,但它也只是一种内部表示,有时需要软件实现与现实不具有文字上的 1-1 对应关系。

例如,静态工厂方法 Rabbit::CreateRabbit 与制造新兔子的现实世界完全无关——这可能更像是一个实例方法,只对一只雌性兔子有效,并通过委托(delegate)回调接收一只雄性兔子它将在 28 天后开火。如果他们听懂了这个笑话,他们可能已经准备好毕业了。

关于c# - 使用生物信息学映射 C# 对象方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460415/

相关文章:

c# - 并发字典 : How do I add if value does not exist or condition fails?

c# - 如何使 WinForms UserControl 填充其容器的大小

c# - 检查一个点是否在旋转的矩形内

c# - 将 KeyValuePair<int,string> 转换为 int[] 数组和 string[] 数组

oop - 继承和接口(interface)

c# - 如何在字段中存储所有 ctor 参数

java - 无参数构造函数是否被认为是 OOP 中的最佳实践

Java 到 Win32 加密 API

Javascript OOP继承创建GLOBAL对象

c# - 电子邮件提供商设计