我有問題圍繞ABAP(SAP)中的MVC方法進行包裝。雖然我的問題不是代碼相關,而是與概念相關。MVC實現概念(概念(ABAP SAP)
情況:
該視圖需要1個參數。它創建控制器的對象並將參數傳遞給控制器。控制器將該輸入重新路由到模型。該模型向數據訪問類請求數據,檢索數據,爲該數據創建對象並將該對象返回給控制器。控制器將數據傳遞給視圖。它讀取對象的屬性並將它們打印到屏幕上。
特定設置:
我需要閱讀「業務夥伴」(名字&姓)在SAP並打印出來到屏幕的表。該方法應該是MVC,OO和一個單獨的數據訪問層(DAL)。 - 我的控制器在視圖中被實例化。在那裏它稱爲'RETRIEVE_BP(iv_BPart)'。 - 我的控制器基本重複對模型的調用(只是傳遞數據?) - 我的模型根據從DAL返回的數據創建本地對象。控制器調用模型時會返回此模型。 - 我是一個Singleton,用於從內部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.
問題:
- 因爲我的控制器沿着信息只是路過。這應該是一個靜態類嗎?否則,我的控制器應該在哪裏實例化?
- 我應該在我的控制器中保留一個本地參考以保存我的模型。因此能夠通過控制器對象直接在視圖中訪問我的模型。從視圖中刪除需要使用傳入參數重複呼叫。
- 我在哪裏構建「業務合作伙伴」對象以將其傳遞迴控制器。從那裏到視圖?
- 我應該在哪裏打電話給我的DAL?
- 如果我將我的模型從業務合作伙伴類中分離出來。模型應該是單身人士嗎?
在回答中,抽象出ABAP代碼並且僅僅使用Java或C#中的示例是完全正確的。我已經有一個工作解決方案。我要求提高我的理解力。
由於這些代碼是SAP系統的一部分,我避免了生成代碼示例,並且在沒有UI組件的情況下分發ABAP代碼非常麻煩。
一如果我在這裏發佈任何錯誤。請糾正我並指引我到正確的地方。如果缺少任何信息,我很樂意提供此信息。