FactoryManager 主要管理控件创建的Delegate的注册Map
来源:互联网 发布:informix数据库版本 编辑:程序博客网 时间:2024/06/01 09:26
提到这个类我们不得不提及Template GenericManager
下面对成员函数进行分析
对于一个管理类的,它的操作总少不了对map成员变量的增删,
(如果加入改查的话,可能manager的职能就太细了。manager这种paradim)
值得介绍的应属对控件的创建:
IObject* FactoryManager::createObject(const std::string& _category, const std::string& _type){MapRegisterFactoryItem::iterator category = mRegisterFactoryItems.find(_category);if (category == mRegisterFactoryItems.end()){return nullptr;}MapFactoryItem::iterator type = category->second.find(_type);if (type == category->second.end()){return nullptr;}if (type->second.empty()){return nullptr;}IObject* result = nullptr;type->second(result);return result;}
可以看到凡是继承与基类IObject 的子类都可以通过FactoryManger创建。这就为控件的动态生成埋下伏笔。
何时调用createObject
猜测 有两种可能:
1)hard code
2)通过Widget来注册注入。
- FactoryManager 主要管理控件创建的Delegate的注册Map
- 创建自注册的Swift UI 控件
- 创建全国主要城市经纬度map的java代码
- [.NET]使用FactoryManager为遗留的静态方法作单元测试
- 关于某控件的delegate
- Delegate的另一种创建方式
- 手动注册控件的注册
- ActiveX控件的注册
- ocx控件的注册
- ActiveX控件的注册
- OLEContainer 控件的主要属性
- login控件的主要代码
- 委托(delegate)在自定义控件的应用
- 委托控件的使用(Delegate Control)
- 创建DATAGUARD的主要步骤
- “线程间操作无效: 从不是创建控件的线程访问它”的解决措施及delegate的用法
- ActiveX控件的注册和反注册
- 表单注册控件的例子
- 电能质量监测装置 的人机界面设计总结(1)
- C# 如何异步查询数据库
- 使用HTML5的canvas做一个会动的时钟
- java-TCPIP协议学习
- 第5章 引用类型 (三)
- FactoryManager 主要管理控件创建的Delegate的注册Map
- dllMain
- android画图流程分析
- JobTracker节点上的作业恢复RecoveryManager
- 第5章 引用类型 (四)
- 百度图片(模仿)
- vim快速选择内块
- Java对象序列化与RMI
- 第四周任务(4)