*&---------------------------------------------------------------------*
*& Report ZHP_PATTERN_SINGLETON
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zhp_pattern_singleton.
INCLUDE zhp_pattern_singleton_lcl.
START-OF-SELECTION.
DATA: lrf_chocolate_boiler_1 TYPE REF TO lcl_chocolate_boiler,
lrf_chocolate_boiler_2 TYPE REF TO lcl_chocolate_boiler.
DATA: chocolate_instance_num TYPE i.
lrf_chocolate_boiler_1 = lcl_chocolate_boiler=>get_instance( ).
lrf_chocolate_boiler_2 = lcl_chocolate_boiler=>get_instance( ).
chocolate_instance_num = lcl_chocolate_boiler=>get_instance_count( ).
WRITE : / 'instance num:',
chocolate_instance_num.
IF lrf_chocolate_boiler_1 EQ lrf_chocolate_boiler_2 .
WRITE :/ 'equal'.
ENDIF.
---------------------------------------------------------------
Include program
*&---------------------------------------------------------------------*
*& Include ZHP_PATTERN_SINGLETON_LCL
*&---------------------------------------------------------------------*
CLASS lcl_chocolate_boiler DEFINITION CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS:get_instance RETURNING value(instance)
TYPE REF TO lcl_chocolate_boiler.
CLASS-METHODS: get_instance_count RETURNING value(instance_count) TYPE i.
PRIVATE SECTION.
CLASS-DATA unique_instance TYPE REF TO lcl_chocolate_boiler.
METHODS: constructor.
CLASS-DATA: instance_count TYPE i.
ENDCLASS. "lcl_chocolateBoiler DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_chocolate_boiler IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_chocolate_boiler IMPLEMENTATION.
METHOD:constructor.
instance_count = instance_count + 1.
ENDMETHOD. "constructor
METHOD get_instance.
IF unique_instance IS NOT BOUND.
CREATE OBJECT unique_instance.
ENDIF.
instance = unique_instance.
ENDMETHOD. "get_instance
METHOD get_instance_count.
instance_count = lcl_chocolate_boiler=>instance_count.
ENDMETHOD. "get_instance_count
ENDCLASS. "lcl_chocolate_boiler IMPLEMENTATION
原文地址:http://hi.baidu.com/base/blog/item/58779e2f2b4c5f351f30893e.html
分享到:
相关推荐
- C#中,可以通过定义静态内部类的方式来实现单例模式。 - ABAP Object中,实现方式可能略有不同。 ##### 2. 结构型模式 结构型模式涉及如何组合类和对象来获得更大的结构。这些模式可以让你的代码更加灵活和...
#### 二、webDynpro for ABAP 的设计模式 webDynpro for ABAP 采用了 MVC(Model-View-Controller)设计模式。这是一种将应用程序的界面逻辑和数据逻辑分离的设计方式,使得应用程序更加模块化、易于维护和扩展。 ...
- **设计模式**: 如单例模式、工厂模式、策略模式等经典设计模式的应用场景与实现方法。 - **框架与工具**: 常见的Java开发框架如Spring Boot、Hibernate等的使用技巧;以及IDEA、Maven等工具的高效利用。 - **性能...
Web Dynpro for ABAP是SAP提供的一种用于开发企业级Web应用程序的技术,它基于Model-View-Controller(MVC)的设计模式。MVC模式有助于分离业务逻辑、用户界面和数据管理,使得应用更加模块化,易于维护和扩展。 在...
这两种语言都支持Model-View-Controller(MVC)设计模式,有助于简化复杂应用的开发。 在Web Dynpro for ABAP中,组件控制器(Component Controller)是核心,它在一个组件内唯一存在,不具有可视界面。自定义控制...