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