Die folgende Abbildung zeigt den Grundgedanken hinter der Implementierung eines BAdIs. Sie haben eine BAdI-Definition und viele Implementierungen, die das selbe BAdI implementieren können.
Die Definition von BAdIs wird durch Erweiterungsspots verwaltet. Ein einfacher Erweiterungsspot für BAdIs kann mehrere BAdI-Definitionen als Erweiterungsspot-Elementdefinitionen enthalten. BAdIs, die sonst über das ganze System verteilt wären, können semantisch gruppiert werden.
Diese Strukturierung wird auf der Seite der Implementierungen durch die Erweiterungsimplementierungen gespiegelt. Ein BAdI kann von mehreren BAdI-Implementierungen implementiert werden, die von Erweiterungsimplementierungen verwaltet werden. Eine einfache Erweiterungsimplementierung für Objekt-Plugins kann mehrere BAdI-Implementierungen eines Erweiterungsspots als Erweiterungsimplementierungs-Elemente enthalten und ein BAdI mehrfach implementieren. Einem Erweiterungsspot können somit mehrere Erweiterungsimplementierungen zugeordnet sein.
Ein BAdI ist immer dem gleichen Paket zugeordnet, wie der Erweiterungsspot, zu dem es gehört.
Die Strukturierungsmerkmale von BAdIs in Erweiterungsspots können technischer und thematischer Natur sein.
Wird bei der Definitionen mehrerer BAdIs beispielsweise vorgesehen, dass sie im gleichen Kontext verwendet werden sollen (dies ist eine Eigenschaft, die nur derjenige kennt, der die BAdIs definiert), so sollten sie vom gleichen einfachen Erweiterungsspot verwaltet werden.
Aus thematischer Sicht sollten dann alle BAdIs nach der Zugehörigkeit zu funktionalen Einheiten, z.B. Abrechnung, in zusammengesetzten Erweiterungsspots zusammengefasst werden.