给OOP专家的一个问题。 - 页 16

 
Georgiy Merts:

这是正确的,更多关于这个功能。你有一个巨大的开关,可以选择你需要的几十个功能中的一个。在这样的切换中,很容易犯错,不小心把与其中一个分支有关的代码写在了错误的地方。

有了过载,事情就简单多了。我们有十个不同的后代,而每次我们都是用一个类,它有一个可重载的函数。我们不能意外地把它写在另一个类中,因为我们必须为它打开一个完全不同的文件。

另外--在我看来,在这个非常巨大的开关中,解析本身比打开我们需要的一个类,然后只解析一个函数要紧张得多。

事实上,在汇编代码中,所有这个开关的处理都归结为同一个开关,取决于这个指针。但在OOP的情况下,所有这些都被隐藏起来,不会干扰到程序员的工作。没有OOP--你就必须处理它。

粗略地说,当你走路时--你最终以一定的顺序向你的肌肉发送信号,使其运动。然而,在意识的层面上--你只是记得要做哪个动作。在这里,OOP正是那种 "记忆要做什么动作"。 你 "不明白为什么我们需要记住动作,因为我们有一堆肌肉,以及与之相连的神经"。 嗯......我以前说过很多次,对于记忆力强的人来说,记住哪些肌肉要按什么顺序绷紧,真的很够用了。记住整个运动是没有意义的。对于其他不能记住这么多的人来说,记住整个动作,以及肌肉发生了什么,以什么顺序绷紧,绷到什么程度--把它藏在心里更合理。

是的,乔治,你的论点是合理的,符合逻辑的。事实上,我的方法要求你记住并了解你程序中的所有内容。这既是好事也是坏事。 好的,因为知道确保快速开发代码和解决方案,语法少,功能多;坏的,因为由于所有块的全局互联,没有规定部分代码可以移植到其他程序。

我们的口语,毕竟也是使用全局记忆。我们知道并记住所有的单词,而不仅仅是属于当前谈话主题的单词。一切都在我们的脑海中乱成一团。这就是 "心灵 "的作用,也是我的方法的作用。所有最重要的功能块的结果都是普遍可用的。因此,在他们之中,几乎是人类的术语。我说的是密码,就像普通语言一样。这很方便。但是,有很多东西需要记住。这是真的。


ZS.顺便说一下,巨大的开关可以被分解成文件,并将内容隐藏起来。这只是方便我看到整个事情。

 
Vict:

Tinny,你在做某种自行车制造,而没有正确研究传统的方法。Peter,找一本好书,也许是Stroustrup,在某本书中,他写了一个文本编辑器,你会从一个真实的问题中学到一些东西,我不记得内容了,但它不太可能教你坏东西。

当然,谢谢你。但具体的任务不太可能让我开眼界,因为在过去6年中我已经解决了无数的任务。一个真正的无数个。所以我知道我在说什么。
 
现在说说效率。交换最终是什么?它是对一个参数与常数的顺序比较。注意,彼得,连续的。也就是说,如果寻求的常数是100500,那么处理器上的这些比较都将被完成。什么是重载函数/方法--这些是编译后机器代码中完全不同的代码块,有自己的入口点。那么,哪个更有效呢?
 
Реter Konow:
当然了,谢谢。但具体的任务不太可能让我大开眼界,因为在过去6年中我已经解决了无数的任务。一个真正的无数个。所以我知道我在说什么。

有很多任务,而你还没有理解重载的用处。想象一下,一个模板函数,它的参数可以通过int、double或user类型,我们想通过abs()来求一个绝对值,如何才能做到不重载?

我想在项目发展时看到你围绕这些阵列的拐杖:模拟一个汽车轮子->有4辆越野车的汽车->有一百辆汽车的道路。

 
Vladimir Simakov:
现在说说效率。 开关最终是什么?它是一个参数与常数的顺序比较。注意,彼得,连续的。

不,开关的工作方式不同。它是一个表格,其中的开关直接进入所需的常数。这是它与if块之间的本质区别。

 
Vladimir Simakov:
现在说说效率。开关最终是什么?这是一个参数与常数的顺序比较。注意,彼得,连续的。也就是说,如果寻求的常数是100500,那么处理器上的这些比较都将被完成。什么是重载函数/方法--这些是编译后机器代码中完全不同的代码块,有自己的入口点。那么,哪个更有效呢?

唉,不可避免的矫枉过正。在这一点上我输了,在另一点上我赢了。

例如,带有巨大开关的功能可以执行项目中的对象和窗口中的项目的定位。它计算出它们的大小。我调用一次,所有的元素和所有的对象都根据它们的锚点被放置在它们的位置上。 计算它们的尺寸和相对位置,确定哪些元素应该被隐藏,需要的画布尺寸是多少等等。一个电话就是一项巨大的工作。同一个块可以计算出成千上万个窗口元素的大小或位置。一个街区。调用的是Object()。

要解决这么多的任务,我得用OOP写多少个类和函数?我不敢想象。

 
Реter Konow:

唉,不可避免的矫枉过正。在这一点上我输了,在另一点上我赢了。

例如:同样的函数用一个巨大的开关来执行元素中的对象和窗口中的元素的定位。我调用一次,所有的元素和所有的对象都根据它们的绑定关系被放置在它们的位置上。它们的大小和位置都是经过计算的。 它决定了哪些元素应该被隐藏,所需的画布尺寸是多少,等等...。一个电话就是一项巨大的工作。同一个区块可以计算出数千个窗口元素中的一个尺寸或位置。一个街区。

要解决这么多的任务,我得用OOP写多少个类和函数?我不敢想象。

粗略估计,大约5-10个。有一个完全自我解释的界面。
 
我是指班级的数量。每一个都是200行。
 
Ihor Herasko:

不,开关的工作方式不同。它是一个表格,其中的开关直接进入所需的常数。这与if块有很大区别。

因此,就速度而言,这显然是MQL中最快的选项但在管理环境中对类对象 的访问是间接的。
 
Реter Konow:

我们做一个没有参数的函数,把所有的重载函数计算都写在里面,让变量成为全局变量,并可以访问任何其他函数的结果。嗯,这是个美人,不是吗?

是的,这很好......我们应该把它放在 "幽默 "分支。)