【 在 lambdai 的大作中提到: 】
: 能承受一定的性能损失的时候,同时构造函数的参数可以用protobuf去描述的话,可以给factory一个protobuf message的参数。
: 不解决所有问题,但可能足够好了。
: :
: ...................
理论上可以。protobuf本质上是可反射的类。
问题是,能否在运行时创建类,而不是编译时。
https://www.newsmth.net/nForum/#!article/CPlusPlus/414690?p=4
33楼。
//Sdbc = Secury DataBase Connection,是我的轮子包的名字。
//DAO = Data Access Object
SdbcDAO my_SQL = new SdbcDAO(SQL_Connect,tabname);//创建一个SQL映射器。按照表名建立对象内部的struct和template。
这里就是运行时创建的实体。也可以说实例化了一个类。
表名是运行时得到的。
如果说你需要序列化/反序列化一些数据。常规的方法是,建立一系列数据对象,每个对象内部都有序列化/反序列化函数。由工厂为你挑选一个合适的对象。那么有100种数据就要写100个类,200个函数。如果哪个数据结构改变了,就要改变程序。
上述程序就是通过数据库表名,为你挑选一个合适的数据对象。
它也可以支持自己建立模板库,通过模板名取得数据对象。当然问题就是前边说的,数据结构的改变需要修改模板库,并重新编译。
模板库可以单独放在一个DLL里。这样比较容易更新。
--
修改:ylh1969 FROM 221.221.53.*
FROM 221.221.53.*