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

    2006-02-02

    Tag:OO

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://jnn.blogbus.com/logs/1879323.html

    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文件之后,既实现的基本的数据的获取和采集功能.

     

     

     

     

     

     


    收藏到:Del.icio.us




    评论

  • 不错不错,版主越来越厉害呢