我有问题围绕着ABAP(SAP)的MVC方法。虽然我的问题不是与代码相关,而是与概念相关。
该视图需要1个参数。它创建控制器的对象并将参数交给控制器。控制器将该输入重新路由到模型。该模型从数据访问类请求数据,检索数据,为该数据创建对象并将对象返回给控制器。控制器将数据传递给视图。它读取对象的属性并将其打印到屏幕上。
我需要从SAP的表格中读取“业务合作伙伴”(名字和姓氏)并将其打印到屏幕上。该方法应该是MVC,OO和单独的数据访问层(DAL)。 - 我的控制器在视图中实例化。在那里它叫'RETRIEVE_BP(iv_BPart)'。 - 我的控制器基本上重复了对模型的调用(只是传递数据?) - 我的模型根据DAL返回的数据创建一个本地对象。控制器调用模型时返回此模型。 - 我是一个单例,用于访问和检索内部SAP表中的数据。这将返回此表的唯一类型。
模型中从DAL检索的方法:
method RETRIEVE_BP.
data ls_bp TYPE BAPIBUS1006_CENTRAL_PERSON.
ls_bp = mo_dal->get_buspartner( EXPORTING iv_bpart = iv_bpart ).
create OBJECT mo_bp EXPORTING firstname = ls_bp-firstname lastname = ls_bp-lastname.
rv_bpart = mo_bp.
endmethod.
控制器中的方法:
method GET_BUSPARTNER.
rv_bpart = mo_mdl_bp->retrieve_BP( exporting iv_BPART = iv_BPART ).
endmethod.
在回答时,完全可以抽象出ABAP代码,并坚持使用Java或C#中的示例。我已经有了一个有效的解决方案我要求提高我的理解力。
由于此代码是SAP系统的一部分,我没有生成代码示例,因此在没有UI组件的情况下分发ABAP代码非常麻烦。
如果我在这里发布任何错误一如既往。请指正,并指引我到正确的地方。如果缺少任何信息,我很乐意制作此信息。
答案 0 :(得分:0)
对MVC架构的不完全理解,我的逻辑存在缺陷。这导致了一个单独的模型类和一个“业务合作伙伴”类,它导致了程序流程中的问题(何时调用什么。)
在查看MVC设计的几个高级概述之后,我得出结论,这个术语或多或少被普遍接受。如本教程中所述:https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm
这个想法是: - 视图:负责捕获输入/显示输出。根本没有处理。 - 控制器:处理程序流程。该对象负责实现程序应该能够执行的所有“操作”,以及将这些操作重定向到正确的部分。 - 模型:这些是您将在程序中使用的对象。 (在我的情况下:我的业务合作伙伴对象) - DAL:这是一个用于数据库访问的单例。