`

ABAP类使用单例模式(转)

阅读更多
*&---------------------------------------------------------------------*
*& 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
分享到:
评论

相关推荐

    ABAP调用函数自动填充模式

    在实际应用中,这样的功能可以通过使用ABAP编程语言中的类和方法来实现,比如通过继承和扩展ABAP编辑器的标准类,然后重写某些方法来添加自定义行为。例如,可以使用CL_ABA_EDITING_SERVICE类,它是ABAP编辑器的核心...

    ABAP 调用ABAP PROXY

    2. **生成Proxy代码**:在目标系统中,使用SE80事务码,通过“生成ABAP Proxy”功能,输入源系统的服务接口信息,自动生成对应的ABAP Proxy类和相关代码。 3. **编译与激活**:生成的Proxy代码需要在目标系统中进行...

    ABAP EXCEL通用类

    本主题将深入探讨“ABAP EXCEL通用类”——ZCL_EXCEL,它是SAP ABAP开发者用于处理Excel文件的一个强大工具。ZCL_EXCEL类允许程序员在后台生成、读取和修改Excel文件,从而实现与Microsoft Excel的数据交互。 首先...

    ABAP SQL使用技巧

    ### ABAP SQL 使用技巧详解 在 SAP 系统开发中,ABAP 语言与 SQL 查询紧密结合,通过优化 SQL 查询方式可以显著提升程序性能。本文将详细介绍 ABAP 中 SQL 查询的各种技巧,帮助开发者更好地掌握这些技能。 #### 1...

    ABAP SCI使用文档

    ### ABAP SCI使用文档详解 #### 一、SCI概念概览 SCI,即SAP Code Inspector,是SAP系统中一款强大的代码审查工具,旨在帮助开发者优化和维护ABAP代码的质量。它通过全面检查代码的各个方面,如性能、安全性、结构...

    sap abap日期类函数参考

    日期类函数在 ABAP 中扮演着至关重要的角色,帮助程序员进行格式转换、比较和计算日期。以下是一些常用的 SAP ABAP 日期函数及其用法。 1. `CONVERSION_EXIT_IDATE_OUTPUT` 这个函数将内部日期格式(如 '20080203'...

    Abap中使用DOI与OLE工具

    在ABAP中,这通常涉及使用`IF_OLE2`接口和相关的类,例如`CL_GUI_OLE_CLIENT`和`CL_GUI_OLE2`。这种方式允许更灵活的数据操作,但可能需要更多的编程工作。 5. **ABAP中的实际应用** 在"ABAP中DOI的实现.doc"文...

    ABAP中正则表达式的简单使用

    除了直接使用内置函数,ABAP还提供了类`cl_abap_regex`和`cl_abap_matcher`,用于更复杂的正则表达式操作。通过实例化这些类,可以创建更灵活的匹配器,执行更精细的文本分析。 ```abap REPORT z_barry_test. ...

    abap xlsx2 demo 程序

    在"abap xlsx2 demo 程序"中,开发者可能使用了XLSX2COMMA或类似的函数模块,它允许将Excel文件转换为逗号分隔值(CSV)格式,便于在ABAP环境中处理。另外,也可能使用了COMMA2XLSX函数模块将处理后的CSV数据转换回....

    ABAP2XLSX+封装EXCEL 打印的公用类

    在"ABAP2XLSX+封装EXCEL 打印的公用类"的场景中,我们可能涉及到的是一个专门设计的公共类(ZCL_COMMON),它利用了ABAP2XLSX的功能,并进一步封装了生成和打印Excel文件的逻辑,以便在不同的业务场景下重复使用。...

    ABAP function使用笔记

    ### ABAP Function 使用笔记 #### 1. CONVERSION_EXIT_ALPHA_INPUT **功能描述:** 此函数模块用于将字母数字类型的输入转换为纯文本格式。它主要用于处理非数值型数据对象的转换。 **输入参数:** - `input`: ...

    abap学习资料abap

    10. **类与对象**:讲解面向对象的ABAP编程,包括类的定义、继承、封装和多态性。 11. **ABAP工作区**:学习如何使用工作区进行数据处理,特别是批量操作。 12. **事务码和增强**:了解SAP系统中的事务码概念,...

    如何在后台模式下调试程序ABAP程序的运行

    此外,我们还可以使用其他的调试工具,例如ABAP调试器、系统日志等,以便更好地调试程序。这些工具可以帮助我们检测和解决程序中的错误,提高程序的稳定性和可靠性。 后台调试是ABAP程序调试的一个非常重要的方式。...

    abap逻辑数据库ABAP数据库操作

    标题和描述所涉及的知识点主要集中在ABAP语言在SAP系统中对数据库的操作和管理。由于这部分内容比较专业,我将尽量详细地阐述ABAP(Advanced Business Application Programming)逻辑数据库和数据库操作的概念和用法...

    ABAP动态内表使用的例子

    ### ABAP动态内表使用的例子 #### 一、引言 在ABAP编程语言中,动态内表(Dynamic Internal Tables)是一种非常灵活的数据结构,它允许程序员在运行时定义和操作内表。与静态内表相比,动态内表提供了更多的灵活性...

    abap-ALV.rar_ABAP系统ALV_abap_abap开发alv

    标题“abap-ALV.rar_ABAP系统ALV_abap_abap开发alv”暗示我们将深入探讨ABAP ALV的使用,特别是在ABAP系统中的应用以及如何进行开发。 描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,...

    BI中的abap使用

    ### BI中的ABAP使用 #### 概述 在SAP Business Intelligence (BI) 的开发过程中,ABAP(Advanced Business Application Programming)作为一种强大的编程语言,在定制化需求方面扮演着至关重要的角色。本文旨在为...

    ABAP 中对HTTP的支持

    在 ABAP 中,可以使用 CL_HTTP_CLIENT 类来创建 HTTP 客户端实例,该实例可以发送 HTTP 请求到外部 HTTP 服务器。创建 CL_HTTP_CLIENT 实例需要提供必要的参数,包括主机名、端口号、代理主机名、代理端口号和方案...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    ABAP 4.7引入了类和对象的概念,支持继承、封装和多态性,这使得代码可维护性和复用性大大提升。 5. 功能模块和库: 功能模块是预定义的程序单元,可以被其他程序调用。ABAP库则包含一组相关功能模块,用于特定的...

Global site tag (gtag.js) - Google Analytics