ABAP 디자인 모델 의 --- "단순 공장 방법 모델 (Simple Factory Method Pattern)"

1. 정의
정적 공장 방법 사용 하기 (Factory Method / Creation Method) 실현 류 의 실례 화 과정.
공장 방법 은 실례 화의 유일한 방법 이다.
2. 해독
  • 사례 화 과정 에서 알 아야 할 배경 정보
  • 를 숨 겼 다.
  • 공장 방법 은 더욱 서술 성 을 가 질 수 있다
  • 클래스 를 사용 하 는 과정 은 학습 클래스 의 실례 화 조건 (constructor)
  • 보다 '상 자 를 열 면 바로 사용' (공장 방법 을 통 해 직접 실례 를 얻는다) 에 가깝다.
    3. 예시
    *&---------------------------------------------------------------------*
    *& Report zsimple_factory_method_pattern
    *&---------------------------------------------------------------------*
    *&
    *&---------------------------------------------------------------------*
    REPORT zsimple_factory_method_pattern.
    
    **********************************************************************
    * Simple Factory Method Pattern / Creation Method
    * 1) Class is defined as CREATE PRIVATE
    * 2) CREATE Method is defined as CLASS-METHODS
    * 3) As a result, constructor is hidden
    **********************************************************************
    CLASS lcl_rectangle DEFINITION FINAL CREATE PRIVATE.
      PUBLIC SECTION.
        CLASS-METHODS create
          IMPORTING
            iv_length          TYPE i
            iv_width           TYPE i
          RETURNING
            VALUE(ro_instance) TYPE REF TO lcl_rectangle.
    
        METHODS get_area_size
          RETURNING
            VALUE(rv_size) TYPE i.
    
      PRIVATE SECTION.
        METHODS constructor
          IMPORTING
            iv_length TYPE i
            iv_width  TYPE i.
    
        DATA mv_length TYPE i.
        DATA mv_width TYPE i.
    ENDCLASS.
    
    CLASS lcl_rectangle IMPLEMENTATION.
      METHOD constructor.
        mv_length = iv_length.
        mv_width = iv_width.
      ENDMETHOD.
    
      METHOD create.
        ro_instance = NEW lcl_rectangle( iv_length = iv_length iv_width = iv_width ).
      ENDMETHOD.
    
      METHOD get_area_size.
        rv_size = mv_length * mv_width.
      ENDMETHOD.
    ENDCLASS.
    
    START-OF-SELECTION.
    
      DATA(lo_rectangle) = lcl_rectangle=>create(  iv_length = 3 iv_width = 2 ).
      DATA(lv_size) = lo_rectangle->get_area_size(  ).
      WRITE |The rectangle size is | && lv_size.

    > 본 블 로 그 는 기술 공유 에 전념 하여 건어물 이 가득 하고 지속 적 으로 업데이트 합 니 다. >주목 을 환영 합 니 다.❤️、좋아요, 리 트 윗!

    좋은 웹페이지 즐겨찾기