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