
(
来源 )
我想为“反对派”和“支持者”之间不断不断的争执贡献“ 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, .
, , , . : « — ». , - , , , . : - . , . (
, , : , , , .) — , , , , .