最近下班后,闲得无聊,打算在Oracle的occi基础之上封装一个访问层,便于处理Oracle的读写操作.
打算主要参照Poco库和OTL以及DTL,利用模板和STL,tr1和log4cplus等库,实现跨平台的要求.
之后,在此基础上,参与Java的Hibernate和ibatis等技术,实现一个简单的对象持久化层.
最近先作了一些技术上的测试和设计工作吧
先贴一段C++工厂方法与反射的简单实现的实现代码
#include <iostream>
#include <memory>
using namespace std;
class Object
{
public:
virtual bool Save() = 0;
virtual bool Get(...)
{
return false;
}
};
class A
{
public:
A(){}
A( int _value )
{
this->value = _value;
}
int value;
};
#define register_class(Class) \
class Class##Adpter : public Object, public Class \
{ \
public: \
Class##Adpter(){} \
virtual bool Save() \
{ \
return true; \
} \
static Object* createInstance() \
{ \
return new Class##Adpter; \
} \
virtual bool Get( ... ) \
{ \
return true; \
} \
public: \
Class object; \
};
typedef shared_ptr<Object> Shared_Object;
template<class ObjType>
class ObjectFactory
{
public:
static Shared_Object CreateInstance()
{
return Shared_Object(new ObjType);
}
};
register_class(A)
int main()
{
Shared_Object a = ObjectFactory<AAdpter>::CreateInstance();
cout << a->Save() << endl;
cout << a->Get(1) << endl;
}
| 小人本潜水在思源的贴边 ID又多 又有钱 快活乐无边 谁知道站总监 他蛮横不留情面 他勾结站长目无天 占我ID夺我钱 我马甲跟他来翻脸 反被他来把经验减 我同学骂他欺新人 反被他捉进了小黑屋里面 874了一百遍啊一百遍 啊 最后他咬舌自尽 遗恨人间 他还将我和马甲赶出了思源 流落在人间 我为求回思源 无奈行乞在贴前 谁知道站总监他实在太阴险 知道此情形竟派人来暗算将我发文狂删到0篇 小人ID强 残命独留全 可怜马甲他 竟遭删 为求养ID 惟有傍人卖身自作践 一面苦赚钱 一面写诗篇 发誓把名气显 手刃总监意志坚啊 从此总监ID念心间 我永铭记此仇不供戴天 |
浙公网安备 33010602011771号