OOP神话与现实


来源

我想为“反对派”和“支持者”之间不断不断的争执贡献“ 5戈比”。 从有关该主题的最新出版物中,可以看到一个明显的负面标题: “忘记OOP越快,对您和您的程序越好” ,爱好和平的“停止对函数式编程和OOP的争论” ,以及较为积极的“图形语言中的面向对象编程”

但是这篇文章的想法促使我对另一篇文章发表评论
OOP的一个很好的例子就是可怕的。 特征系统完美地实现了您的情况,完全不需要回答对象编程的存在问题-“什么是对象?”。 [...]忘记OOP了,它是GUI的成功隐喻,他们试图提高其宗教地位。

在我看来,这是一个非常有启发性的典型评论,其中没有批评OO方法(甚至给出了GUI中的OOP也应受批评),而是关于OOP的神话。 因此,在我看来,每个人都是正确的:当支持者指出OOP的便利性时(例如,在编写GUI时),以及当反对者以银弹(绝对武器)的状态激怒提高OOP时,都是反对者。

应当立即指出,在每个OO PL中都有不同的OO方法,有时与其他OO方法有很大不同,有时并没有很大不同。 我将从OO Pascal的适度简单方法开始,该方法已经在Turbo Pascal 5.5中制定,并最终在Delphi 7中成型(我们可以注意到其他制造商的概念语言,例如,用于MacOS的Think Pascal)。 这种面向对象的方法有一些基本原则:封装,继承(简单),多态; 以及明显的限制:例如,基本上没有非常复杂的多重继承

正如我在上述文章的评论中所写的那样,我认为从经典的Pascal到OO Pascal的过渡看起来非常清楚和合理:

记录中已经是最简单的封装。 此外,继承的概念来自以下简单示例:

type
TCoord = record //  
                    x, y : integer
                  end;
TRect = record // 
                     leftTop, RBot : TCoord;
               end;


«record» «class» ( ), «» .

— , , GUI. « „ ?“». — , — — . . , , ! ( ). — , , . — . , , , , , — , . , . , — . , . ? — : . , . .:

.., .., .. . .
. ., . . 3-, . .: , 2007


, . 3 , , . , . . , . : , . , - ;)

, , , ., , , . , . — . — , , :

[...] , .. IDE GUI, .

, , , . : « — ». , - , , , . : - . , . (, , : , , , .) — , , , , .

Source: https://habr.com/ru/post/zh-CN453836/


All Articles