ABAP OO的八大理由
生活随笔
收集整理的這篇文章主要介紹了
ABAP OO的八大理由
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.?
???????ABAP OO更加明確所以更易于使用。例如在使用ABAPOO你的程序的執(zhí)行流程不再是由運行時隱含的控制。這樣你就可以自己去設(shè)計程序所執(zhí)行的流程了而不必像面向過程那樣去了解和服從外部控制機制(即報表和dialog screen的事件)。
2.????????ABAP OO具有更加清晰的語法和語義規(guī)則,比如一些容易出錯的過時的語句在ABAPOO類中已經(jīng)明確不能再使用。而在面向過程的程序中這些語法仍然被支持,頂多就是在關(guān)鍵的時候給你報個警告信息。
3.????????ABAP的一些新技術(shù)只能通過ABAP OO來實現(xiàn)。例如所有新的GUI的概念比如SAP ControlFramework和BSP只有通過ABAP OO的方式才能夠?qū)崿F(xiàn)。而對于面向過程的ABAP你就只能使用傳統(tǒng)的screen和listprocessing了。
所以即便你在未來的開發(fā)中還不準備完全的轉(zhuǎn)型為OO,你可以使用的OO技術(shù)來減少錯誤的隱患以及增強代碼的可維護性。下面的部分將會闡述如何達到這一目的。
那么面向過程的ABAP和ABAP OO究竟是孰優(yōu)孰劣?下面的部分將逐一進行論述。首先先了解以下ABAP OO的年代史。
1.????????SAP Basis Release 4.5發(fā)布了ABAPOO的一個版本,引入了類接口的概念,并可以通過類來創(chuàng)建對象(實例化類)。
2.????????SAP Basis Release 4.6發(fā)布了ABAPOO的完全版本,引入了OO方式的重要概念繼承(inheritance),可以通過多個接口來建立一個復合的接口。
3.????????SAP WEB APPLICATION SERVER 6.10/6.20 SAPbasis的下一代版本,在類之間引入了friendship的概念。并引入了對象服務(wù)(objectservice)可以把對象存儲在數(shù)據(jù)庫中。
4.????????SAP WEB APPLICATION SERVER 6.40引入了共享對象(SharedObjects)的概念,即允許在應(yīng)用服務(wù)器的共享內(nèi)存中存儲對象。這樣在這個服務(wù)器中的任何一個程序都可以訪問它。
幾個關(guān)鍵點
????????ABAP OO是ABAP編程語言的擴展
????????ABAP OO 是向下兼容的
????????SAP發(fā)布ABAP OO是為了進一步增強代碼的可重用性
????????隨著ABAP OO的發(fā)布,ABAP運行時支持面向過程和面向?qū)ο髢煞N模式
左 邊是純粹的ABAP OO模式,所有的代碼都封裝在類中。你的應(yīng)用中并不直接觸presentation layer(SAP Gui ,Business Server Pages etc.),persistent data(database table,systemfile)。他們是通過類庫中的相應(yīng)服務(wù)類來提供的。比如SAP Control Framework ,Desktop OfficeIntegration, and Business Pages提供了與表現(xiàn)層的接口。對于SAP Web Application6.10以上提供了與數(shù)據(jù)庫層接口的服務(wù)對象。
雖然純粹的OO模式技術(shù)上是可行的,但是現(xiàn)實中還存在著大量的兩種模式的混合體如右面的圖所示。ABAP對象和面向過程的技術(shù)同時應(yīng)用,調(diào)用常用的功能模塊,調(diào)用屏幕或者直接訪問數(shù)據(jù)庫等在對象中都存在。混合的模式及利用了新技術(shù)又保護了已投入的成本。
兩種模式的選擇
正如本文所述,OO的模式是最佳的選擇,除非在絕對必要的情況下才使用面向過程的模式。比如傳統(tǒng)的screenprogramming在OO中是不支持的,附錄中會進一步闡釋如何實現(xiàn)screen與OO的結(jié)合。
2.????????ABAP OO具有更加清晰的語法和語義規(guī)則,比如一些容易出錯的過時的語句在ABAPOO類中已經(jīng)明確不能再使用。而在面向過程的程序中這些語法仍然被支持,頂多就是在關(guān)鍵的時候給你報個警告信息。
3.????????ABAP的一些新技術(shù)只能通過ABAP OO來實現(xiàn)。例如所有新的GUI的概念比如SAP ControlFramework和BSP只有通過ABAP OO的方式才能夠?qū)崿F(xiàn)。而對于面向過程的ABAP你就只能使用傳統(tǒng)的screen和listprocessing了。
所以即便你在未來的開發(fā)中還不準備完全的轉(zhuǎn)型為OO,你可以使用的OO技術(shù)來減少錯誤的隱患以及增強代碼的可維護性。下面的部分將會闡述如何達到這一目的。
那么面向過程的ABAP和ABAP OO究竟是孰優(yōu)孰劣?下面的部分將逐一進行論述。首先先了解以下ABAP OO的年代史。
1.????????SAP Basis Release 4.5發(fā)布了ABAPOO的一個版本,引入了類接口的概念,并可以通過類來創(chuàng)建對象(實例化類)。
2.????????SAP Basis Release 4.6發(fā)布了ABAPOO的完全版本,引入了OO方式的重要概念繼承(inheritance),可以通過多個接口來建立一個復合的接口。
3.????????SAP WEB APPLICATION SERVER 6.10/6.20 SAPbasis的下一代版本,在類之間引入了friendship的概念。并引入了對象服務(wù)(objectservice)可以把對象存儲在數(shù)據(jù)庫中。
4.????????SAP WEB APPLICATION SERVER 6.40引入了共享對象(SharedObjects)的概念,即允許在應(yīng)用服務(wù)器的共享內(nèi)存中存儲對象。這樣在這個服務(wù)器中的任何一個程序都可以訪問它。
幾個關(guān)鍵點
????????ABAP OO是ABAP編程語言的擴展
????????ABAP OO 是向下兼容的
????????SAP發(fā)布ABAP OO是為了進一步增強代碼的可重用性
????????隨著ABAP OO的發(fā)布,ABAP運行時支持面向過程和面向?qū)ο髢煞N模式
對于面向過程的模式,程序的運行通常是從screen的dialog module或selection screen的start-of-selection事件開始的。你在這些處理模塊中操作全局變量來實現(xiàn)需求的功能。你可以通過內(nèi)部的form和外部的function module來實現(xiàn)程序的模塊化。這些過程除了可以操作全局變量外還可以具備內(nèi)部的本地變量來協(xié)助實現(xiàn)內(nèi)部的一些特定功能。
對于OO編程,唯一的結(jié)構(gòu)單位就是類,這里類的實例對象取代了全局變量。這些對象封裝了應(yīng)用的狀態(tài)和行為。應(yīng)用的狀態(tài)是用屬性來代表的它取代了面向過程中的全局變量。應(yīng)用的行為是通過方法來實現(xiàn)的,他們用來改變應(yīng)用的屬性或者調(diào)用其它對象的方法。???????ABAPOO支持OO和面向過程的兩種模式,這樣在傳統(tǒng)的ABAP程序(比如報表,模塊池,功能池等)中你也可以使用ABAP對象類。在這些程序里你也就可以使用基于面向?qū)ο蟮男录夹g(shù)了,比如一些用戶界面,避免了要想使用這些新技術(shù)必須重新編寫程序。
n????????目前大部分程序都是面向過程和ABAP OO 的混合體如下圖所示:左 邊是純粹的ABAP OO模式,所有的代碼都封裝在類中。你的應(yīng)用中并不直接觸presentation layer(SAP Gui ,Business Server Pages etc.),persistent data(database table,systemfile)。他們是通過類庫中的相應(yīng)服務(wù)類來提供的。比如SAP Control Framework ,Desktop OfficeIntegration, and Business Pages提供了與表現(xiàn)層的接口。對于SAP Web Application6.10以上提供了與數(shù)據(jù)庫層接口的服務(wù)對象。
雖然純粹的OO模式技術(shù)上是可行的,但是現(xiàn)實中還存在著大量的兩種模式的混合體如右面的圖所示。ABAP對象和面向過程的技術(shù)同時應(yīng)用,調(diào)用常用的功能模塊,調(diào)用屏幕或者直接訪問數(shù)據(jù)庫等在對象中都存在。混合的模式及利用了新技術(shù)又保護了已投入的成本。
兩種模式的選擇
正如本文所述,OO的模式是最佳的選擇,除非在絕對必要的情況下才使用面向過程的模式。比如傳統(tǒng)的screenprogramming在OO中是不支持的,附錄中會進一步闡釋如何實現(xiàn)screen與OO的結(jié)合。
總結(jié)
以上是生活随笔為你收集整理的ABAP OO的八大理由的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP 面试题
- 下一篇: 冒险实施SAP HANA 农夫山泉缘何做