c++反射机制
2019-05-31 10:23:50 0 举报
AI智能生成
c++反射模拟
作者其他创作
大纲/内容
1、反射机制的目的
1、框架接口化
1、目的
降解框架的耦合度
1、方便扩展
2、方便框架复用
2、达到效果
动态实例化接口类
1、通过字符串创建类的实例
2、查阅资料
1、反射机制是C#、Java这种半编译语言中的概念
2、c++不支持反射机制
3、通过宏定义的方式模拟实现一部分类似反射机制的功能
4、宏的##可以将字符串转化成符号(只是在编译阶段实现了类似的功能,不是在运行阶段的反射)
3、分析实现原理
1、定义静态全局map变量
2、在map类中记录键值对<"Class Name",创建类实例接口函数指针>
3、map中查找类名字符串,根据查到的字符串调用创建实例的指针,构建类的实例
4、缺点
不能创建带有参数的类实例
1、架构设计
采用工厂设计模式
1、在工厂类中采用字符串实例化方式,创建具体的实现功能的类
2、具体实现功能的类,继承预先定义的接口
3、工厂类返回接口类型的指针
4、利用C++多态性实现调用具体的功能
2、实现架构
1、实现反射类的基类
创建类对象实例的接口
类注册接口
2、在接口中继承反射基类
3、在接口实现类中实现接口功能、实现反射基类定义的接口
4、调用反射类的注册函数,注册接口实现类
5、在需要实例化具体类的地方,调用反射基类的创建接口实现类对象的静态函数
3、编码
4、调试,测试
3、编码
0 条评论
下一页