诸位大侠,我在构思一个软件架构。主要用于连接另外两个软件之间的功能,这句话说起来笼统,我举个例子来介绍这个流程。比如我的软件叫做F,另外两个软件一个叫X,另一个叫Y。X与F,F与Y之间通过COM组件、winsock等方式通讯,具体通讯方式根据实际情况决定。X软件里面有一个UINT16的变量,例如UINT16 IndependentX,在X软件中实现一种功能,可以通过软件间的接口导出。它有一个取值范围,用UINT16 IndependentX_MIN和UINT16 IndependentX_MAX表示。Y软件里面也有一个UINT16的变量,例如UINT16 DependentY,Y软件中实现另一种功能,Y软件的接口允许从外部改写这个变量。它也有一个取值范围,用UINT16 DependentY_MIN和UINT16 DependentY_MAX表示。
在F软件中,上述两个变量都被接口(实现方法不赘述)本地化,例如变成了UINT16 LocalizedIndependentX、UINT16 LocalizedDependentY,前者只读,后者可读写。然后在F软件中用一个函数y=f(x)对二者进行连接。自变量的取值范围是定义域,因变量的取值范围用来校验f(x)函数的值域合法。每次执行这个函数即可完成从软件X到软件Y的一次刷新。以上就是我想实现任务的一个缩影。
整体情况相对复杂一些,主要是在复杂性和灵活性两个方面。从复杂性来讲,除了上面说的那个UINT16变量之外,还有其它类型变量,如UCHAR、UINT32、FLOAT等等,多数都是ANSI C的基本变量。最复杂的也只是LPSTR,长度可变。每种类型的变量个数不确定,值不确定从灵活性上来讲,今天有软件X和软件Y,明天可能出现软件M和软件N,届时又是另一套混合类型的变量。现在每个对象的属性如下表所列:
{ 读/写权限 数据类型 对象值
最小值
最大值 }
我的问题:要把这些不同类型混合在一起的本地变量集中整理编排以方便管理,优先照顾执行速度,可适当牺牲空间,请问用什么方式合适?我是做硬件开发的,软件方面没有系统地学习过,自己思考这个问题的时候首先想到的是用类模板,但不知道有没有更好的方法,望诸位高手不吝赐教,多谢!
在F软件中,上述两个变量都被接口(实现方法不赘述)本地化,例如变成了UINT16 LocalizedIndependentX、UINT16 LocalizedDependentY,前者只读,后者可读写。然后在F软件中用一个函数y=f(x)对二者进行连接。自变量的取值范围是定义域,因变量的取值范围用来校验f(x)函数的值域合法。每次执行这个函数即可完成从软件X到软件Y的一次刷新。以上就是我想实现任务的一个缩影。
整体情况相对复杂一些,主要是在复杂性和灵活性两个方面。从复杂性来讲,除了上面说的那个UINT16变量之外,还有其它类型变量,如UCHAR、UINT32、FLOAT等等,多数都是ANSI C的基本变量。最复杂的也只是LPSTR,长度可变。每种类型的变量个数不确定,值不确定从灵活性上来讲,今天有软件X和软件Y,明天可能出现软件M和软件N,届时又是另一套混合类型的变量。现在每个对象的属性如下表所列:
{ 读/写权限 数据类型 对象值
最小值
最大值 }
我的问题:要把这些不同类型混合在一起的本地变量集中整理编排以方便管理,优先照顾执行速度,可适当牺牲空间,请问用什么方式合适?我是做硬件开发的,软件方面没有系统地学习过,自己思考这个问题的时候首先想到的是用类模板,但不知道有没有更好的方法,望诸位高手不吝赐教,多谢!
Type <对象名>
Type <对象名MIN>
Type <对象名MAX>
}对于每个对象,三个成员的Type类型相同。
对于不同对象,相互之间Type类型不同,但是类型有限。我的需求是把这些对象统一管理起来方便引用。比如通过类指针引用,或者其它神马方法。
转化时一种策略,可以作为一个单独的模块,随着你的X,Y数据对象的变化来配置,
而刷新则做成一种服务,不用考虑变化的