最近下班后,闲得无聊,打算在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念心间 我永铭记此仇不供戴天 |