h5熟人棋牌系统架设(aqiulian.com/h5),QQ咨询212303635模仿COM组件接口模式,利用面向对象思想多态性polymorphism,调用方保存着被调用方的基础接口指针(interface or sink钩子)(Pure Virtual Function),调用方直接调用接口指针内声明的纯虚方法,而此纯虚函数的具体逻辑由该接口的派生类实现。
示意图:
基于事件驱动的数据处理模型
在系统功能设计中,针对网络事件SocketEvent、数据库事件DatabaseEvent、定时器事件TimerEvent……的数据处理,建立数据队列服务QueueService,为每一队列建立多个子线程QueueServiceThread处理。数据队列服务提供添加事件数据的方法AddToQueue,设置数据队列服务钩子SetQueueServiceSink,由数据队列服务钩子QueueServiceSink执行具体逻辑事件的数据处理。
示意图:
再者,根据网络、数据库等特定功能,构建网络、数据库等管理服务,实现数据队列服务钩子QueueServiceSink方法,调度事件数据执行外部处理接口,外部处理接口具体由二次开发用户实现。
示意图:
事件数据设计
软件体系结构(架构 Architecture)设计
功能模块划分
数据队列服务QueueService模块设计
基本设计概念
建立一个内存链表,保存事件数据,对外部提供方法(向链表添加事件数据并通知线程,同时启动多个处理线程,从数据链表里获取事件数据,执行外部钩子方法进行处理。线程事件通知采用完成端口技术。
类与接口设计
内部类:
中心服务器 | 名字 | 类名 | 继承 | 类型 |
调度引擎钩子 | CAttemperEngineSink | : public IAttemperEngineSink | 接口实现 | |
数据库引擎钩子 | CDataBaseSink | : public IDataBaseSink | 接口实现 | |
中心服务类 | CCenterService | 核心类 | ||
配置参数 | CInitParamter | 核心类 | ||
连接信息结构 | CConnectItem | 数据管理 | ||
连接信息管理 | CConnectInfoManager | 数据管理 | ||
房间连接信息 | CConnectItem_GameServer | : public CConnectItem | 数据管理 | |
广场连接信息 | CConnectItem_Plaza | : public CConnectItem | 数据管理 | |
应用程序对象 | CCenterServerApp | : public CWinApp | MFC | |
主对话框 | CCenterServerDlg | : public CDialog | MFC | |
配置对话框 | CSystemOptionDlg | : public CDialog | MFC | |
登陆、大厅 | 名字 | 类名 | 继承 | 类型 |
调度引擎钩子 | CAttemperEngineSink | : public IAttemperEngineSink | 接口实现 | |
数据库引擎钩子 | CDataBaseSink | : public IDataBaseSink | 接口实现 | |
中心连接类 | CCenterSocket | : public IAsynchronismEngineSink, public IClientSocketSink |
接口实现 | |
登录服务类 | CLogonService | 核心类 | ||
配置参数 | CInitParamter | 核心类 | ||
列表管理 | CServerList | 数据管理 | ||
列表信息 | CServerListInfo | 数据管理 | ||
应用程序对象 | CLogonServerApp | : public CWinApp | MFC | |
主对话框 | CLogonServerDlg | : public CDialog | MFC | |
配置对话框 | CSystemOptionDlg | : public CDialog | MFC | |
游戏装载器 | 名字 | 类名 | 继承 | 类型 |
服务参数类 | CServiceParameter | : public CDialog | MFC/核心类 | |
配置参数 | CInitParamter | 核心类 | ||
应用程序对象 | CServiceLoaderApp | : public CWinApp | MFC | |
主对话框 | CServiceLoaderDlg | : public CDialog | MFC | |
配置对话框 | CSystemOptionDlg | : public CDialog | MFC | |
游戏服务框架 | 名字 | 类名 | 继承 | 类型 |
调度引擎钩子 | CAttemperEngineSink | : public IAttemperEngineSink, public IGameServiceFrame |
接口实现 | |
数据库引擎钩子 | CDataBaseSink | : public IDataBaseSink | 接口实现 | |
中心连接类 | CCenterSocket | : public IAsynchronismEngineSink, public IClientSocketSink |
接口实现 |