OOP与程序化编程 - 页 9

 
Реter Konow:
我明白为什么我不明白,这不是我的代码,此外它只是其中的一部分。但你似乎也不明白--还是我错了?

我不使用指针...

早些时候,我的工作方式和你一样,只用函数,但随着时间的推移,它们必须以某种方式存储,然后我不得不搜索它们,每个函数都有自己的额外动作。

现在我已经把所有东西都重建成了类,当我调用Order类时,我得到了我需要的所有东西和一个可用的函数和方法的列表......

 
Реter Konow:
这就是为什么我喜欢做大的通用代码块的原因。

甚至不能相信没有OOP的好GUI的作者

节省代码行数?

 
СанСаныч Фоменко:

不,你的例子非常好。

这不是关于程序化编程。

有一个更重要的程序质量标准:代码的清晰度。

你给出的解决方案很糟糕:根本不清楚什么函数被有意义地调用。我会针对每个调用写一个正常的开关和一个评论。这就是正确的代码。

我从你的例子中得出结论,OOP是一个有害的东西。


如果你事先知道只有一个会被使用,为什么要用100个变体来切换?

与三行代码相比,一卷100个变体的开关有什么意义?

把可以合理、最佳(甚至完美)完成的事情变得复杂、庞大、缓慢是不对的。

只有当你不正确地使用它时,OOP才是有害的。

请对这一 意见作出回应。

 
Реter Konow:
这就是为什么我喜欢制作大型的、通用的代码块。

是什么使它们具有普遍性?

 
Dmitry Fedoseev:

当你事先知道只有1个会被使用时,你为什么还需要一个100个变量的开关?

与三行代码相比,100个变量的开关的清晰度是多少?

做出复杂、庞大、缓慢的事情,可以理性地、最优化地(甚至完美地)完成,这不是正确的方法。

请对这一 意见作出回应。


这不是一个破坏者--它是一个与程序文本相结合的程序功能的文件。这是最重要的事情,而不是什么会单独发挥作用

 
Vladimir Pastushak:

我不使用指针...

早些时候,我的工作方式和你一样,只用函数,但随着时间的推移,它们必须以某种方式存储,然后我不得不搜索它们,每个函数都有自己的额外动作。

现在我把所有的东西都重建成了类,当我调用Order类时,我得到了我需要的所有东西和一个可用的函数和方法的列表。

如果这对你来说更方便,我也不反对。从我相当丰富的编程经验来看,我可以说,任何任务都可以在没有OOP的情况下同样有效地解决,如果你对你的解决方案应用通用化和压缩。这是由伟大的实践所证实的经验。也许这种或那种方法与我们思维的个体特殊性有关。这是我想表达的主要观点。
 
СанСаныч Фоменко:

这不是一个破坏者--它是节目功能与节目文本相结合的文件。这是最重要的事情,而不是什么会单独发挥作用


泔水和压舱物都是如此。苍蝇要分开,肉片要分开。文件很重要,但它不应该干扰程序的运行。

 
Dmitry Fedoseev:

是什么使它们具有普遍性?

例如,你需要一个块,通过创建控件来定位图形对象之间的相对位置。同时,同一个区块控制着物体的现象,也就是说,它隐藏了一些物体,显示了其他物体。它还可以计算滚动条尺寸 和整体窗口尺寸。它还计算了滚动条中的滑块移动。这是对象关系的通用块。


或者是一个控制窗口手柄被握住时的窗口大小的块。或者一个控制控件状态的块。或者是计算光标在哪个元素上并同时将许多全局参数纳入焦点的块......

 
Реter Konow:
例如,你需要一个块,通过创建控件来定位图形对象之间的相对位置。同时,同一个区块控制着物体的现象,也就是说,它隐藏了一些物体,显示了其他物体。它还可以计算滚动条尺寸和整体窗口尺寸。它还计算了滚动条中的滑块移动。这是通用的对象关系块。

但这是通过if和switch实现的,不是吗?

 
Dmitry Fedoseev:

但这是通过if和switch实现的,不是吗?

是的,这些街区都有。但相信我--它们被压缩到最大,而且用途广泛,因为它们能解决广泛的问题。