CLASS zcl_vehicle_factory DEFINITION
PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS create_vehicle
IMPORTING
iv_type TYPE string
RETURNING
VALUE(ro_vehicle) TYPE REF TO zif_vehicle
RAISING
cx_sy_create_object_error.
ENDCLASS.
CLASS zcl_vehicle_factory IMPLEMENTATION.
METHOD create_vehicle.
ro_vehicle = SWITCH #( to_upper( iv_type )
WHEN 'CAR' THEN NEW zcl_car( )
WHEN 'TRUCK' THEN NEW zcl_truck( )
ELSE RAISE EXCEPTION TYPE cx_sy_create_object_error ).
ENDMETHOD.
ENDCLASS.