<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Singleton pattern with inheritance in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/singleton-pattern-with-inheritance/m-p/5302465#M1222868</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can try to pass the TYPE in the Singleton method for which you want to create an object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this example, I am passing the TYPE also to my GET_OBJECT (which is my singleton) method to create an object of that type.&lt;/P&gt;&lt;P&gt;Like:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*----------------------------------------------------------------------*
*       CLASS lcl_animal DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_animal DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS:
      get_object
        IMPORTING
          if_name TYPE string
        RETURNING
          value(ro_object) TYPE REF TO lcl_animal.

    METHODS:
      write_me.

  PRIVATE SECTION.
    CLASS-DATA:
      wo_singleton TYPE REF TO lcl_animal.

ENDCLASS.                    "lcl_animal DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_lion DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_lion DEFINITION INHERITING FROM lcl_animal.

  PUBLIC SECTION.
    METHODS:
      write_me REDEFINITION.

ENDCLASS.                    "lcl_lion DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_animal IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_animal IMPLEMENTATION.

  METHOD get_object.

    IF wo_singleton IS INITIAL.
      CREATE OBJECT wo_singleton TYPE (if_name).
    ENDIF.

    ro_object = wo_singleton.

  ENDMETHOD.                    "get_object

  METHOD write_me.

    WRITE: / 'I am an Animal'.

  ENDMETHOD.                    "write_me

ENDCLASS.                    "lcl_animal IMPLEMENTATION


*----------------------------------------------------------------------*
*       CLASS lcl_lion IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_lion IMPLEMENTATION.

  METHOD write_me.

    WRITE: / 'I am a LION'.

  ENDMETHOD.                    "write_me

ENDCLASS.                    "lcl_animal IMPLEMENTATION



START-OF-SELECTION.
*  DATA: lo_animal TYPE REF TO lcl_animal.
*
*  lo_animal = lcl_animal=&amp;gt;get_object( 'LCL_ANIMAL' ).
*
*  lo_animal-&amp;gt;write_me( ).
*

  DATA: lo_lion TYPE REF TO lcl_lion.

  lo_lion ?= lcl_animal=&amp;gt;get_object( 'LCL_LION' ).
  lo_lion-&amp;gt;write_me( ).
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Naimesh Patel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Mar 2009 23:37:54 GMT</pubDate>
    <dc:creator>naimesh_patel</dc:creator>
    <dc:date>2009-03-03T23:37:54Z</dc:date>
    <item>
      <title>Singleton pattern with inheritance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/singleton-pattern-with-inheritance/m-p/5302464#M1222867</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried to design a class using the singleton pattern in ABAP Objects (with lazy creation). The class itself works fine - however, I struggle to create a subclass of my singleton since ABAP Object does not allow me to redefine static methods.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone know a solution in ABAP Objects to use the singleton pattern together with inheritance?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance for any ideas!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Mar 2009 20:37:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/singleton-pattern-with-inheritance/m-p/5302464#M1222867</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-03-03T20:37:38Z</dc:date>
    </item>
    <item>
      <title>Re: Singleton pattern with inheritance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/singleton-pattern-with-inheritance/m-p/5302465#M1222868</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can try to pass the TYPE in the Singleton method for which you want to create an object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this example, I am passing the TYPE also to my GET_OBJECT (which is my singleton) method to create an object of that type.&lt;/P&gt;&lt;P&gt;Like:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*----------------------------------------------------------------------*
*       CLASS lcl_animal DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_animal DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS:
      get_object
        IMPORTING
          if_name TYPE string
        RETURNING
          value(ro_object) TYPE REF TO lcl_animal.

    METHODS:
      write_me.

  PRIVATE SECTION.
    CLASS-DATA:
      wo_singleton TYPE REF TO lcl_animal.

ENDCLASS.                    "lcl_animal DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_lion DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_lion DEFINITION INHERITING FROM lcl_animal.

  PUBLIC SECTION.
    METHODS:
      write_me REDEFINITION.

ENDCLASS.                    "lcl_lion DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_animal IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_animal IMPLEMENTATION.

  METHOD get_object.

    IF wo_singleton IS INITIAL.
      CREATE OBJECT wo_singleton TYPE (if_name).
    ENDIF.

    ro_object = wo_singleton.

  ENDMETHOD.                    "get_object

  METHOD write_me.

    WRITE: / 'I am an Animal'.

  ENDMETHOD.                    "write_me

ENDCLASS.                    "lcl_animal IMPLEMENTATION


*----------------------------------------------------------------------*
*       CLASS lcl_lion IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_lion IMPLEMENTATION.

  METHOD write_me.

    WRITE: / 'I am a LION'.

  ENDMETHOD.                    "write_me

ENDCLASS.                    "lcl_animal IMPLEMENTATION



START-OF-SELECTION.
*  DATA: lo_animal TYPE REF TO lcl_animal.
*
*  lo_animal = lcl_animal=&amp;gt;get_object( 'LCL_ANIMAL' ).
*
*  lo_animal-&amp;gt;write_me( ).
*

  DATA: lo_lion TYPE REF TO lcl_lion.

  lo_lion ?= lcl_animal=&amp;gt;get_object( 'LCL_LION' ).
  lo_lion-&amp;gt;write_me( ).
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Naimesh Patel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Mar 2009 23:37:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/singleton-pattern-with-inheritance/m-p/5302465#M1222868</guid>
      <dc:creator>naimesh_patel</dc:creator>
      <dc:date>2009-03-03T23:37:54Z</dc:date>
    </item>
    <item>
      <title>Re: Singleton pattern with inheritance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/singleton-pattern-with-inheritance/m-p/5302466#M1222869</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Naimesh, I think this solves my question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Mar 2009 08:35:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/singleton-pattern-with-inheritance/m-p/5302466#M1222869</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-03-04T08:35:15Z</dc:date>
    </item>
  </channel>
</rss>

