使用BioInformatics映射C#对象方向

2 c# oop

我正在为生物信息学专业的学生教授C#.我刚刚开始了OOP原则.我必须一次又一次地解释这些术语,因为他们在使用技术术语时感到厌烦.最后,我决定用他们的语言来传达它们(我的意思是从生物学相关术语中给出例子).

对我来说,很难用生物相关的术语来表达类,对象,事件,委托,属性,多态,继承,封装,序列化,反射等.如果有人开始提供至少一些术语的例子,我可以构建其余的.

Cad*_*oux 8

这样的例子可以设计,并且不能明确OO编程的全部含义.学生将陷入基于Dog Is-A Mammal的多态性和继承的不切实际的使用.

有人可能将一个类视为一个物种,比如说一个物体作为有机体,但那么什么是静态类和静态方法?这种隐喻概念应该在他们的教育中相当迅速地被抛弃,以免削弱他们使用比其他经验领域的隐喻更丰富的语言.

重要的是要记住,尽管OO对于对现实世界进行建模是有用的,但它也只是一种内部表示,并且有时需要软件实现与现实无关.

例如,静态工厂方法Rabbit :: CreateRabbit与制作新兔子的现实世界根本没有关系 - 这可能更像是一个实例方法,仅对一只雌性兔子有效,它会带一只带有委托回调的雄兔28天后.如果他们得到那个笑话,他们可能已经准备好毕业了.