【 在 xiaofeiyun 的大作中提到: 】
: 目的是类工厂不依赖于具体类实现,不用去包含很多具体类的头文件,new具体类
: 调查大部分说可以,一个EXE内部不同的类,每个具体类自己用全局方式注册到类工厂。 叫依赖注入?
: 但是怎么动态创建多个DLL(具体类)呢? DLL里的具体类没办法注册到exe里面的类工厂!
https://www.newsmth.net/nForum/#!article/CPlusPlus/414690?p=4
33楼。
这是一个服务器程序,客户端送来一个表名,服务器从数据库里提取该表的数据,返回给客户端。
数据的数据类型和数据结构在编译期间是未知的。而且,数据库的表结构还可能随时修改。
它只需要把所有数据打包传输即可,不太关心其具体内容的格式。所以,数据结构的变化不需要修改这个程序。
C++没有反射机制,这程序是利用数据库的表字典,在数据对象内部建立模板(相当于反射),然后生成一个布局相当于某种结构的内存块(虚结构)。
之后就可以对它进行序列化,反序列化操作了。当然由于没有通过编译系统,这个虚结构的内容处理是比较困难的(比如说不能使用成员名直接访问成员)。好在它通过序列化把数据传递给客户端,客户端既然知道表名,那么它也知道其数据结构和处理方法。就是说,当你修改了数据结构,客户端的程序可能要修改,而这个服务器程序完全不必修改。
补充一点,这个DAO类提供了根据列名取得相应数据的功能,可以操纵虚结构里的每一个数据,前提是,你知道该表的列名和类型及处理规则。这样你的程序就会有具体操作,而不仅仅是抽象的泛型。
--
修改:ylh1969 FROM 221.221.53.*
FROM 221.221.53.*