Prefer multiple static creation methods to optional parameters
CLASS-METHODS describe_by_data IMPORTING data TYPE any [...]
CLASS-METHODS describe_by_name IMPORTING name TYPE any [...]
CLASS-METHODS describe_by_object_ref IMPORTING object_ref TYPE REF TO object [...]
CLASS-METHODS describe_by_data_ref IMPORTING data_ref TYPE REF TO data [...]ABAP does not support overloading. Use name variations and not optional parameters to achieve the desired semantics.
" anti-pattern
METHODS constructor
IMPORTING
data TYPE any OPTIONAL
name TYPE any OPTIONAL
object_ref TYPE REF TO object OPTIONAL
data_ref TYPE REF TO data OPTIONAL
[...]The general guideline Split methods instead of adding OPTIONAL parameters explains the reasoning behind this.
Consider resolving complex constructions to a multi-step construction with the Builder design pattern.