【问题标题】:How to simulate object oriented programming with a procedural language? [closed]如何使用过程语言模拟面向对象编程? [关闭]
【发布时间】:2014-11-01 00:46:25
【问题描述】:

我在求职面试中被问到这个问题,所以我想知道。我们怎样才能用过程语言来模拟面向对象的语言,从而完成所有面向对象的编程概念:抽象。封装。遗产。多态性。

谢谢你们!!! :)

【问题讨论】:

标签: java oop design-patterns jobs


【解决方案1】:

您可以看看人们是如何采用诸如 JavaScript 之类的过程语言并利用这些特性来应用 OO 原则的。

多态性:利用对象的原型属性。

抽象与继承Object类中其他对象的组合,对象与原型的继承

封装对象类型可以定义外部消费对象不需要了解即可使用的内部方法和功能。

见:

【讨论】:

    【解决方案2】:

    其中一方面是object.method(params...) 只是function(data, params...) 的语法糖。对于后者,开发人员必须约束自己不要传递指向错误类型数据的指针或以任何其他方式修改数据——这是编译器在 OO 语言中为您强制执行的。

    【讨论】:

    • 如果method 是一个虚函数,则不是这样。
    • 嗯,可以说它仍然是正确的,只是更复杂。为了模拟虚函数,程序开发人员必须根据数据的实际类型制定一些方案来确定在运行时调用哪个函数。 OO 语言会为您处理所有这些问题。
    • 您可以使用过程代码实现 OO,但处理多态性所需的逻辑量对于“语法糖”的任何合理定义来说都是一个延伸。
    猜你喜欢
    • 1970-01-01
    • 2016-04-22
    • 2017-12-12
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 2011-06-21
    相关资源
    最近更新 更多