我读了几篇文章说你不能在 SAP 的经典 dynpros 中开发 OO。我是初学者,所以可能我有一些误解。但是当我使用类和对象时,我正在开发面向对象,对吧?
在 dynpro 中,我还可以使用类和创建对象、使用它们的方法等。那么为什么 Dynpro 不是 OO?
我知道这是一个基本问题,但如果我对 OO 有误解,我需要忘记这个问题:)
这主要是因为经典的 PBO-PAI 处理。您一定会使用几年前开发的经典 dynpro 之类的“消息泵”。但我必须不同意,按照 OOP 原则进行开发是不可能的。它只是不太好,例如,您必须捕获 PAI 以进行进一步的导航、验证和处理,并且您可以在 PBO 中设置值、消息等。
但是,尽管它很丑,但它仍然为您提供了完美的解决方法?他他他?
MVC 设计模式。
只要您为一个好的模型和控制器建模,您就可以将其作为顶部包含中的对象进行跟踪并创建一些包装器,这些包装器必须首先通过 PAI/PBO 传递控制(我不太喜欢它) - 模块到表单例程,在这些表单例程中您可以自由地执行您想要的一切,即使在 OO-Context 中也是如此。创建一个全局模型和控制器类,使用一个 alv-grid 创建一个 dynpro,还创建一个 top-include 并尝试使用。已经有很多标准应用程序使用完全相同的方法。一件好事是(尽管您有 module-formroutine-delegation ),您可以真正开始对模型和控制器进行很好的建模,这就是定义。
SAP ABAP Classical Dynpro 屏幕是内置程序过程的一部分,该过程在显示屏幕之前运行处理 (PBO),显示屏幕,然后在屏幕上检测到动作后处理 (PAI)。
处理此问题的 SAP 代码是程序性的,因此您无法构建“纯”OO 程序。
您可以在程序中使用类、对象和方法,但还必须涉及过程处理。
尝试使用 MVC 可能会弄得一团糟,但那时为什么不直接使用 WebDynpro 呢?