BAdIs Embedded in the Enhancement Framework
The following figure shows the basic idea behind the implementation of a BAdI. You have one BAdI definition and many implementations that may implement the same BAdI:

The definition of BAdIs is managed by enhancement spots. A simple enhancement spot for BAdIs can contain several BAdI definitions as enhancement spot element definitions. BAdIs that would otherwise be spread out in the system can be grouped together semantically.
This structuring is mirrored on the implementation side through the enhancement implementations. A BAdI can be implemented by several BAdI implementations that are managed by enhancement implementations. A simple enhancement implementation for object plug-ins can contain several BAdI implementations of an enhancement spot as enhancement implementation elements and can implement a BAdI multiple times. Therefore, several enhancement implementations can be assigned to one enhancement spot.
A BAdI is always assigned to the same package, like the enhancement spot, to which it belongs.
The structuring features of BAdIs in enhancement spots can be of a technical or a subject nature.
If, in the definition of several BAdIs, you have the provision that they are to be used in the same context (this is a feature known only by the person who defines the BAdIs), they must be used by the same simple enhancement spot.
From a subject point of view, all BAdIs must then be grouped together by affiliation to functional units - for example, payroll - in combined enhancement spots.