Model view controller MVC实施-概念(ABAP SAP)
我遇到了一个问题,就是在ABAP(SAP)中采用MVC方法。虽然我的问题与代码无关,但与概念相关 情况: 该视图采用1个参数。它创建控制器的对象并将参数传递给控制器。控制器将该输入重新路由到模型。模型从数据访问类请求数据,检索数据,为该数据创建一个对象,并将该对象返回给控制器。控制器将数据传递给视图。它读取对象的属性并将其打印到屏幕上 具体设置: 我需要从SAP中的表中读取“业务合作伙伴”(Firstname和Lastname),并将其打印到屏幕上。方法应该是MVC、OO和独立的数据访问层(DAL)。 -我的控制器在视图中实例化。在那里,它称为“检索BP(iv_BPart)”。 -我的控制器基本上会重复对模型的调用(只是传递数据?) -我的模型根据DAL返回的数据创建一个本地对象。当控制器调用该模型时,将返回该模型。 -My是用于从内部SAP表访问和检索数据的单例。这将返回此表唯一的类型 模型中要从DAL检索的方法:Model view controller MVC实施-概念(ABAP SAP),model-view-controller,Model View Controller,我遇到了一个问题,就是在ABAP(SAP)中采用MVC方法。虽然我的问题与代码无关,但与概念相关 情况: 该视图采用1个参数。它创建控制器的对象并将参数传递给控制器。控制器将该输入重新路由到模型。模型从数据访问类请求数据,检索数据,为该数据创建一个对象,并将该对象返回给控制器。控制器将数据传递给视图。它读取对象的属性并将其打印到屏幕上 具体设置: 我需要从SAP中的表中读取“业务合作伙伴”(Firstname和Lastname),并将其打印到屏幕上。方法应该是MVC、OO和独立的数据访问层(DA
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.
问题:
- 因为我的控制器只是传递信息。这应该是一个静态类吗?否则,我的控制器应该在哪里实例化
- 我是否应该在控制器中保留模型的本地引用。因此,可以通过控制器对象在视图中直接访问我的模型。不再需要使用视图中的传入参数重复调用
- 在何处构造“业务伙伴”对象以将其传递回控制器。从那里到风景区
- 我应该在哪里打电话给我的朋友
- 如果我将我的模型与我的业务伙伴类分开。模型应该是单体模型吗
就像往常一样,如果我在这里发帖时犯了任何错误。请指正我,并告诉我正确的地点。如果缺少任何信息,我很乐意提供这些信息。我的逻辑由于对MVC体系结构的不完全理解而存在缺陷。这导致了一个单独的模型类和一个“业务伙伴”类,这在程序流中引起了问题(何时调用what) 在查看了MVC设计的几个高级概述之后,我得出结论,这个术语或多或少被普遍接受。如本教程所述: 其想法是: -视图:负责捕获输入/显示输出。根本没有处理。 -控制器:处理程序流。此对象负责实现程序应该能够执行的所有“操作”,并将这些操作重定向到正确的部分。 -模型:这些是您将在程序中使用的对象。(在我的情况下:我的业务伙伴对象) -DAL:这是数据库访问的单例 答案:
- 否控制器不应是静态类。它应该是在主程序中创建的对象。之后,视图应该访问控制器对象李>
- 不,不应该有引用(或私有引用)。视图不应该能够通过使用控制器中的引用直接到达模型。这是MVC体系结构的关注点分离原则
- 控制器具有“检索BP”方法。此方法调用DAL。此DAL从数据库中检索它,并创建BP模型的对象。将此对象返回控制器=>视图
- 见上面的问题
- 这些模型重新呈现了业务逻辑:这是您的程序将要处理的对象。(就我而言,是“业务合作伙伴”。)