`
jnn
  • 浏览: 283474 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

读取配置文件动态创建对象[C++](5)

    博客分类:
  • OO
阅读更多

 

额外收获

 

AppenderFactory 返回的指针是 SharedAppenderPtr

class   NullAppenderFactory : public   AppenderFactory {

               public :

        SharedAppenderPtr   createObject ( const   Properties & props )

         {

            return   SharedAppenderPtr ( new   log4cplus :: NullAppender ( props ));

        }

        tstring   getTypeName () {

            return   LOG4CPLUS_TEXT ( "log4cplus::NullAppender" );

        }

};

LayoutFactory 中返回的是 std::auto_ptr 指针

  class   TTCCLayoutFactory : public   LayoutFactory {

    public :

        std :: auto_ptr < Layout > createObject ( const   Properties & props )

        {

            std :: auto_ptr < Layout > tmp ( new   log4cplus :: TTCCLayout ( props ));

            return   tmp ;

        }

        tstring   getTypeName () {

            return   LOG4CPLUS_TEXT ( "log4cplus::TTCCLayout" );

        }

    };

这两者之间有什么样的区别联系 ?

通过 auto_ptr 可以知道对象实例在返回之后 , 需要将对象的生命周期交给外部的使用者 , 由使用者负责堆对象实例的析构工作 .

分析成果

配置文件的定义实现 , 包含的基本类 , 以及这些类的实现 .

对于实现的动态配置的考虑 :

1.        通过生成 RegistryFactory 完成所有需要加载的对象的工厂方法的初始化 ,

2.        分析配置文件来实现不同方法的调用的实现

3.        加载完成 Configure 文件之后 , 既实现的基本的数据的获取和采集功能 .

分享到:
评论

相关推荐

    C++程序案例MFCFrmX

    打算写一个C++程序 其实我是想用MFC静态库实现一个通过TXT配置文件在程序中动态创建界面的程序。 &lt;br&gt;主要思路是: &lt;br&gt;提供一个基类CSearchBaseDialog,在基类中,程序从配置文件中读取界面控件的信息,然后...

    QT&C++ 学生成绩管理系统 ,无需配置环境,有安装包,适合快速理解.zip

    构建项目时,MOC工具读取C++源文件,当它发现类的定义里有Q_OBJECT宏时,它就会为这个类生成另外一个包含有元对象支持代码的C++源文件,这个生成的源文件连同类的实现文件一起被编译和连接。 除了信号和槽机制外,...

    C++网络爬虫项目

    由WebCrawler对象在从MultiIo对象中等到套接字描述符可读时动态创建,通 过Socket对象接收超文本传输协议响应。WEBCRAWLER 网络爬虫实训项目 9 2.3.4. 网络爬虫(WebCrawler) 代表整个应用程序的逻辑对象,构建并维护...

    Visual C++程序开发范例宝典(光盘) 第八部分

    实例214 动态创建视图 实例215 通过视图更改数据 实例216 删除视图 8.6 触发器 实例217 创建触发器 实例218 在程序中使用触发器 8.7 存储过程 实例219 创建存储过程 实例220 删除存储过程 实例221 在程序...

    Visual C++程序开发范例宝典(PDF扫描版).part3

     cc实例214 动态创建视图   cc实例215 通过视图更改数据   cc实例216 删除视图   8.6 触发器   cc实例217 创建触发器   cc实例218 在程序中使用触发器   8.7 存储过程   cc实例219 创建存储...

    C++Builder精彩编程实例集锦的源代码后3部分.rar

    实例026 如何动态创建程序表单 实例027 如何遍历窗体所有组件 实例028 如何保证组件位置相对固定 实例029 如何在窗体中动态增加组件 实例030 如何使组件在程序运行时可以移动 实例031 如何使用组件创建托盘程序...

    Visual C++ 程序开发范例宝典 源码 光盘 part2

    8.3 更新数据 cc实例210 批量修改数据 cc实例211 将指定字段数据为空的记录添上数据 8.4 删除数据 cc实例212 删除单条数据 cc实例213 删除数据库中无用处的记录 8.5 视图 cc实例214 动态创建视图 cc...

    Visual C++程序开发范例宝典(PDF扫描版).part2

     cc实例214 动态创建视图   cc实例215 通过视图更改数据   cc实例216 删除视图   8.6 触发器   cc实例217 创建触发器   cc实例218 在程序中使用触发器   8.7 存储过程   cc实例219 创建存储...

    C++Builder精彩编程实例集锦的源代码前3部分.rar

    实例026 如何动态创建程序表单 实例027 如何遍历窗体所有组件 实例028 如何保证组件位置相对固定 实例029 如何在窗体中动态增加组件 实例030 如何使组件在程序运行时可以移动 实例031 如何使用组件创建托盘程序...

    Linux多线程服务端编程:使用muduo C++网络库

    《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例214 动态创建视图 实例215 通过视图更改数据 实例216 删除视图 8.6 触发器 实例217 创建触发器 实例218 在程序中使用触发器 8.7 存储过程 实例219 创建存储过程 实例220 删除存储过程 实例221 在程序...

    MFCFrm.rar

    打算写一个C++程序 其实我是想用MFC静态库实现一个通过TXT配置文件在程序中动态创建界面的程序。 &lt;br&gt;主要思路是: &lt;br&gt;提供一个基类CSearchBaseDialog,在基类中,程序从配置文件中读取界面控件的信息,然后...

    vc++ 开发实例源码包

    详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...

    Android C++高级编程:使用NDK_Onur Cinar, 于红PDF电子书下载 带书签目录 完整版

    6.3.3 C++的动态内存管理 139 6.4 标准文件I/O 141 6.4.1 标准流 141 6.4.2 使用流I/O 141 6.4.3 打开流 142 6.4.4 写入流 143 6.4.5 流的读取 145 6.4.6 搜索位置 148 6.4.7 错误检查 149 6.4.8 关闭流 ...

    Tree_List_Dir_devoelop:一个类似于Windows文档管理器功能的实现程序

    这是一个类似于Windows文档管理器的程序,提供了从始至终,都是动态创建界面的宗旨,动态创建界面具有三态变化的按钮控制,所有界面设备无关位图dib全是自己手工制作,标题是通过在程序中读取配置文件mogu.ini,从中获得...

    JAVA上百实例源码以及开源项目

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

Global site tag (gtag.js) - Google Analytics