介绍之前我们讲个小故事以方便大家更深入的理解.
比亚迪在江苏有个大工厂, 汽车就是从工厂的车间里面出来的. 但并不是所有零件都是产自于该工厂, 此工厂就做一些汽车框架之类框架性的大件东西.用于汽车装配. 至于小零件都是外协来的. 堆放于工厂的不同仓库.
1:汽车架子.(自产)
2: 轮胎(外协)
3:方向盘(外协)
4: 其它(自产/外协)
当然,组装这些东西需要有一些前期条件. 这些东西尺寸上都能衔接, 不然汽车轮子, 卡车方向盘.装上就不好看.
这些尺寸都是预先会跟外协厂商沟通好. 也就是来图加工.
.扯远了.正题:
以下所有均使用Summit文档中的数据结构举例.
typedef struct sENTITY_struct
{
char * Name;
int Size;
int NumberOfProperties;
sPROPERTY * Properties;
sINTERFACE **Interfaces;
...
}sENTITY;
//有对象的一眼应该就看出来了, C面向对象的写法. 有属性, 方法. 实际就是个类.
typedef struct sMetaModel
{
int NumberOfTableEntities;
int NumberOfEntities;
sENTITY ** AllEntities;
sENTITY_NAME_REC * EntityNames;
...
}sMETAMODEL;
//有10个孩子以上的家庭应该对这个数据结构沈有体会,孩子多了当然得集中管理了,不然不好管.
//这就是好比银行中已经存放了各个种类的现金.并做了标记, 就等你去抢了.
sMETAMODEL sGlobalMetaModel =
{
sizeof( MetaModelTableEntities ) / sizeof( sENTITY * ),
sizeof( MetaModelAllEntities ) / sizeof( sENTITY * ),
MetaModelAllEntities,
EntityNames,
};
//这就是你要去抢钱的通道.心灵传输者看过吗? 对, 后续就通过这种途径、去抢钱.抢粮.抢...
sMETAMODEL * sGetGlobalMetaModel()
{
return &sGlobalMetaModel;
}
以上就是对SUMMIT数据模型的一个简单介绍.
当然. 现在C++/JAVA/ ETC面向对象的用法比较好玩.那接下来就用C++来重构一下它吧.
class Entity : public BasicEntity , implements IEntity
{
private:
string _Name;
int _Size;
void * _Data;
Property * _Props;
Iface * _Ifaces;
...
};
IEntity * ETS[] =
{
new MM("MM", "cMM"),
new FXSPOT("FXSPOT"),
new FXFWD("FXFWD"),
new FXSWAP("FXSWAP"),
NULL
};
class nMetaModel
{
private:
static IEntity ** IE;
...
public:
nMetaModel(){}
};
nMetaModel * sGlobalInit()
{
return new nMetaModel();
}
后续将继续介绍Summit的各种数据结构的含义以及用法.并用C++的方法一一重构它.且听后续如何, 静待下回撤蛋...