从今天起,决定自己做个ATM的模拟演示软件。在设计中尽量考虑用设计模式来处理,也是为了巩固自己这段时间看设计模式书籍的成果。另外该演示软件主要专注于核心功能,界面展示这个层次只用console来处理。核心模块尽量做成DLL,可以方便上层使用任何语言来调用构建UI。
今天先设计一个socket来处理通信组件模块。ATM演示软件系统需要包括一个服务端和一个客户端。尽管功能简单,但是服务端必须设计成能支持多客户端连接请求。而且采用常见的短连接方式。考虑到我可能会在Linux下编程(比如我现在就在Ubuntu下写博,因为我觉得自己的机器跑XP好像有些吃力了),我的socket类必须要能同时支持win32和Linux两种平台。其实,一般银行的ATM服务端是运行在Unix下的,而Linux和Unix在代码移植上相对容易,所以就只处理这两种平台了。因为socket的功能其实比较固定。服务端就是用一个socket监听所有连接请求,然后将连接请求分到一个新的socket上,然后通过这个新socket与客户端完成数据交互,最后关闭这个socket。而原先监听的socket一直监听,这样可以支持多个连接请求。
考虑到以上需求和特点,我决定直接设计一个ISocket的接口。然后分别设计CWinSocket和CLinuxSocket类继承它,分别提供两个平台上的基本socket服务。
功能代码,下次贴伪代码上来。
今天先设计一个socket来处理通信组件模块。ATM演示软件系统需要包括一个服务端和一个客户端。尽管功能简单,但是服务端必须设计成能支持多客户端连接请求。而且采用常见的短连接方式。考虑到我可能会在Linux下编程(比如我现在就在Ubuntu下写博,因为我觉得自己的机器跑XP好像有些吃力了),我的socket类必须要能同时支持win32和Linux两种平台。其实,一般银行的ATM服务端是运行在Unix下的,而Linux和Unix在代码移植上相对容易,所以就只处理这两种平台了。因为socket的功能其实比较固定。服务端就是用一个socket监听所有连接请求,然后将连接请求分到一个新的socket上,然后通过这个新socket与客户端完成数据交互,最后关闭这个socket。而原先监听的socket一直监听,这样可以支持多个连接请求。
考虑到以上需求和特点,我决定直接设计一个ISocket的接口。然后分别设计CWinSocket和CLinuxSocket类继承它,分别提供两个平台上的基本socket服务。
- --ISocket
- |--CWinSocket
- |--CLinuxSocket