作为了解OOP和过程语言之间差异的一种方法,我正在寻找用C和C++或C#或Java编写的示例程序。我只想看到针对同一问题的不同方法,以帮助我了解真正的差异。有谁知道我在哪里可以找到这样的教程?寻找使用不同语言编写的程序示例
回答
您可以随时查看Project Euler。人们用许多不同的语言解决了同样的问题。大多数人会在解决问题后发布他们可以访问的解决方案。
这不会真正显示OOP和程序方法之间的差异。大多数在Java中遇到问题的人只需在主要方法中写几行。这些并不是真正涉及很多......好的......对象的问题。 – 2009-04-17 13:59:18
但它仍然很有趣! – 2009-12-20 13:02:01
这可能对您而言有点简单,但the Hello World Collection总是很有趣。
我建议99 bottles of beer网站
在The Computer Language Benchmarks Game看看。它以几乎所有你能想象到的语言实现了各种程序。
Rosetta Code有丰富的数据,但很少涉及程序/面向对象的区别。你还应该看到他们收集的related sites。
Black Scholes in multiple languages有很多Black-Scholes公式的实现。该公式在Objective-C/iPhone,F#,Autoit,Fortress,Lua,APL,SAS,Mathcad,J,MEL,Postscript,VB.NET,Clean,Ruby,Lisp,Prolog,PL/SQL,LyME, ColdFusion,K,C#,HP48,Transact SQL,O'Caml,Rebol,Real Basic,Icon,Squeak,Haskell,JAVA,JavaScript,VBA,C++,Perl,Maple,Mathematica,Matlab,S-Plus,IDL,Pascal, Python,Fortran,Scheme,PHP,GNU,gnuplot。
我不认为这可能会教你很多。在不同的编程范例之间的差异真正表现出来之前,程序必须具有一定的规模。如果相同的程序使用不同的语言,人们不可能写出相同的副本,除非该程序是微不足道的。
大多数现实生活中的例子也会受到很多额外噪音的污染,这些噪音可以在一种语言的标准库中完成,但需要另一种语言的第三方库。编写它的程序员可能比其他语言更熟悉一种语言,所以他在某些语言中的实现并不代表它应该如何完成。
你更有可能通过常见方式了解这些范例之间的区别。通过了解每种方法的意义,以及如何使用它。
有人贴出邪恶海象/ ReFactory Reddit上的一天:
考虑的蛇和梯子游戏
在程序设计中实现,我们可以写一个对象的设计语言如
function move(int n) {
pos += n;
switch(pos) {
case 6: pos = 10; break;
case 12: pos = 4; break;
case 15: pos = 32; break;
case 16: pos = 8; break;
// ...
}
}
的功能,我们将创建Square
实例的链接列表,一些Ladder
和Snake
实例分支到其他方块。
class Square
def initialize(next)
@tokens = []
@next = next
end
def next(n)
n == 0 ? self : next.next(n-1)
end
def move(token,n)
tokens.remove(token)
target = self.next(n)
target.tokens << token
end
end
class SnakeOrLadder < Square
def initialize(next,branch)
super(next)
@branch = branch
end
def next(n)
# goes to branch when landing on this square!
n == 0 ? @branch : next.next(n-1)
end
end
,你可以看到,我们实现了目标游戏规则以及他们是构成方式(而不是在一个开关case语句)。这样做的优点是
- 它是简单的在开发时添加新的游戏规则,你只写广场
- 它是简单的改变游戏的布局在运行时(威力的一个新的子类对于一款游戏听起来很奇怪,但对于你的普通商业应用,这是你想要的)
这种灵活性是什么让OO如此强大。
- 1. 程序如何使用以不同语言编写的文件?
- 2. 用不同的语言编写一个应用程序
- 3. 寻找烘焙成编程语言的设计模式的示例
- 4. 用不同语言编写的不同应用程序如何交互?
- 5. 使用用外语(口头)语言编写的应用程序
- 6. 如何找到用特定语言编写的应用程序?
- 7. 管理用不同编程语言编写的并发项目
- 8. 用2种语言编写程序?
- 9. 编程语言的代码示例
- 10. 使用什么语言编写Go编程语言?
- 11. 如何编写和不同的语言
- 12. 使用汇编语言编写C程序的函数
- 13. 用不同语言编写的2个程序之间的通信 - 序列化?
- 14. 用于编写GUI应用程序的编程语言
- 15. 不同语言的Rails应用程序?
- 16. 不同语言的Android应用程序
- 17. 不同语言的iPhone应用程序
- 18. 寻找例子用iPhone编写的用于iPhone的GUI应用程序
- 19. 针对示例编程语言的语法高亮显示
- 20. PHP:使用不同语言的提示
- 21. 您可以使用程序,功能,逻辑和OO编程语言来表示相同的示例吗?
- 22. 语言便携示例程序
- 23. 不同编程语言的随机数
- 24. 以不同的编程语言重载
- 25. 寻找低级编程语言的学习材料
- 26. 寻找一个虚拟的编程语言
- 27. 如何用汇编语言编写基本的SORT程序?
- 28. 如何使用MSVC编写Postgres语言处理程序
- 29. 下列程序使用哪种语言编写?
- 30. 寻找使用MediaFileUpload的示例
作为一个冷嘲热讽的建议,请考虑http://golf.shinh.org/中的条目:-) – 2009-04-17 13:28:34