我在StackOverFlow上看到了许多不同的主题,讨论了程序编程和面向对象编程之间的区别。问题是:如果程序使用了一个对象,它仍然可以被认为是程序性的吗?
答案 0 :(得分:4)
是的,早期Java的很多正是如此;你有一群C程序员进入Java,因为它是“热门的”,那些没有在OOP中思考的人。许多具有大量静态方法的大类,在case语句中有大量RTTI,大量使用instanceof
。
答案 1 :(得分:1)
GLib有GObject这是在纯C中实现的面向对象编程。虽然你可以构建一个开始“感觉”像OOP的API,但它仍然只是简单的“C”代码而没有实际的类(来自编译器的观点)。如果你已经足够远,所以你开始实现面向对象的设计模式,那么无论用什么语言写我都会称之为OOP。这完全取决于代码的感觉以及你必须考虑如何反对它。< / p>
答案 2 :(得分:1)
程序编程与您构建程序和建模域的方式有关。仅仅因为在某些时候你实例化一个对象,并不是唯一使你的程序面向对象(即面向对象)。
答案 3 :(得分:0)
区别完全是主观的。例如,如果使用状态传递对C库进行编码,则实现某种“tell”模式,将状态作为对象。
答案 4 :(得分:0)
可以将类视为超类型。当我们从VB3转换为VB6时,我们的第一遍是查找我们使用的所有类型,然后查找将该类型作为参数的所有子例程和函数。我们将它们移到了类定义中,删除了参数然后进行了测试,使原始控制流保持不变
然后我们重构了我们的控制流程,以使用各种模式和面向对象的技术。
答案 5 :(得分:0)
面向对象的核心是如何将问题分解为更小的部分,以及这些部分如何协同工作。这是关于哲学的。使用OO语言并不一定意味着用它编写的程序是OO;使用支持开箱即用的常见OO概念的语言来做OO会更容易。
回答这个问题:“如果程序使用某个对象,它仍然可以被认为是程序性的吗?” - 这取决于你对对象和程序编程的定义。但在我看来,答案是响亮的“是”。 “对象”只是OO哲学的一部分,并且“在你的应用程序的某个地方使用它们”并不意味着你正在做OO。
答案 6 :(得分:0)
你的问题的答案是肯定的。例如。我有一个旧的PHP遗留页面需要维护。大多数代码都是程序性的,但是如果我将Zend Framework插入现有的东西并编写一些自己的类来替换一些旧的代码,我认为可以更容易地维护一些东西。一般来说,这个应用程序仍然以主要的程序方式编写和运行,但是这里然后实例化和使用一个或另一个类。我猜程序和OO之间没有明确的界限。你可以做得更干净或更干净。如果您的应用程序的大小和复杂性没有足够的图层,那么您最终也会自动获得更多程序代码......