Eri*_*son 12 language-agnostic oop
当我学习一门新语言时,我经常编写一些数学函数来习惯控制流语法.之后,我喜欢实现一些排序算法来习惯数组/列表结构.
但我没有一个标准练习来探索语言OO功能.有没有人为此进行股票锻炼?
对于已经熟悉这些概念的程序员来说,一个好的答案自然会给继承,多态等带来帮助.一个理想的答案是可以用几个词进行沟通而不含糊不清的答案,就像"实现mergesort"完全明确一样.(作为一个例子,回答"设计一个游戏"是如此模糊,以至于无用.)
有任何想法吗?
编辑: 我不得不说这里的结果有些讽刺.10个upvotes和(最初)5个收藏夹表明这是其他人感兴趣的问题.然而,最受欢迎的答案是说没有好的答案.那好吧.我想我会看下面的教科书,我发现OO过去很有用.
我无法想象会有一套标准的练习可以自然地向每个人介绍编程语言的面向对象特性。很多介绍性的 OO 教程都充满了Animals
、Cats
、 ,Dogs
这至少对我来说并没有真正的意义。在面向对象中找到一个你经常遇到的问题域,并尝试将其用作你所选择的每种语言的一组练习。
我们习惯于思考的面向对象结构在语言中可能没有意义。我想到了 Javascript,它动摇了我们对对象的一般看法的整个基础。也就是说,您不应该适应一种语言,而应该根据您的目的调整该语言。随着时间的推移,随着您的知识库随着经验的增长和改进,您自然会希望在您使用的每种编程语言中实现您认为最好的功能,无论该语言提供什么。