SAP ABAP Netweaver裡的胖介面(fat interface)
Recently I am planning an internal training regarding Software engineering concept to my colleagues and one topic is “Interface Segregation”.
The following guideline is quoted from OODesign:
“When we design an application we should take care how we are going to make abstract a module which contains several submodules. Considering the module implemented by a class, we can have an abstraction of the system done in an interface. But if we want to extend our application adding another module that contains only some of the submodules of the original system, we are forced to implement the full interface and to write some dummy methods. Such an interface is named fat interface or polluted interface.
The Interface Segregation Principle states that clients should not be forced to implement interfaces they don’t use. Instead of one fat interface many small interfaces are preferred based on groups of methods, each one serving one submodule.”
I am very curious whether SAP standard code contains such fat interface or not. So I wrote a small CDS view:
And get all interfaces which contains more than 10 methods:
The result is there are totally 3139 such interfaces in my CRM development system.
I quickly go through the list, most of them are used to build system functionalities and NO application will implement them, so in my opinion the fact is acceptable.
On the other hand there is also another category of interfaces which has NO methods or attributes defined. Refer to this blog Tag(Marker) Interface in ABAP and Java for more detail.
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2703482/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP系統裡的胖介面Fat interface
- SAP ABAP Netweaver 裡的 ABAP 會話概念會話
- SAP ABAP Netweaver 裡的使用者會話概念會話
- SAP Hybris和ABAP Netweaver裡的DAO(Data access object)Object
- SAP ABAP Netweaver和Hybris Commerce的部署策略
- 從ABAP Netweaver的SICF到SAP Kyma的Lambda FunctionFunction
- ABAP Netweaver, SAP Cloud Platform和Kubernetes的使用者區分CloudPlatform
- SAP ABAP Netweaver伺服器的標準登入方式講解伺服器
- ABAP Netweaver, Hybris Commerce和SAP 雲平臺的登入認證
- 如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料Prometheus應用日誌
- SAP SEGW 事物碼裡的 ABAP Editor
- SAP ABAP Netweaver 容器化的一些前沿性研究工作分享
- ABAP Netweaver和git的快捷方式Git
- ABAP Netweaver 和 ABAP Platform 這兩個名詞的辨析Platform
- SAP ABAP RFC介面通用日誌工具:abap fm logger
- ABAP和Java的tag(marker) interfaceJava
- 如何在ABAP Netweaver和CloudFoundry裡記錄並檢視日誌Cloud
- Hybris裡類似ABAP Netweaver的DDIC - 如何做資料型別的extension資料型別
- ABAP Netweaver和Hybris裡獲得記憶體使用統計資料記憶體
- interface/介面
- 關於無法用 https 登入 SAP ABAP Netweaver 系統的問題和解決方案HTTP
- SAP ABAP裡資料庫表的Storage Parameters從哪裡來的資料庫
- SAP ABAP CDS view裡的註解在ABAP後臺是如何被解析的?View
- java中的interface(介面)Java
- ABAP Netweaver體內的那些寄生式程式語言
- 如何把某個網站的SSL Server certificate鏈匯入到ABAP Netweaver系統裡網站Server
- Salesforce和SAP Netweaver裡資料庫表的後設資料設計Salesforce資料庫
- public interface View介面和public interface ViewResolver介面介紹View
- SAP ABAP CDS view 裡 INNER JOIN 和 Association 的區別View
- SAP ABAP, Fiori, Android和Hybris裡的非同步操作Android非同步
- 從 ABAP Netweaver 到 ABAP Platform,我們一直在努力Platform
- SAP Netweaver和Hybris的資料庫層資料庫
- Netweaver和SAP雲平臺的quota管理
- firewalld: 介面interface操作
- 如何理解 interface 介面
- Java-介面(interface)Java
- Netweaver和CloudFoundry裡的trace開關Cloud
- SAP Hybris的Master Tenant和Netweaver的System ClientASTNaNclient