java 跨平台框架_用面向对象封装操作系统之跨平台基础框架设计

本文介绍了一种基于面向对象技术的跨平台C++基础框架库设计,该框架旨在简化跨平台软件开发过程,提供了包括容器类、字符串处理类、时间处理类、IO流类、网络类等在内的基础组件。

计算机操作系统如Win32、Linux、Solaris等提供的OS API虽然千差万别,但是功能其实大同小异,有进程管理、进程调度、进程间通信、文件管理、IO输入输出、网络输入输出、线程同步控制等等。但是要开发跨平台的软件却极其困难,因为某些处理方式有较大出入。如果能有这样一套框架,能封装大部分种类的OS API,提供统一的接口,并且这些接口使用都是标准的统一的,那开发上层的应用岂不容易?

以下是 用面向对象技术封装的跨平台基础框架库的初步设计,大部分参考Java和.Net的设计,部分引入ACE和STL的设计,提供简洁的使用接口,使得开发C++应用系统如同写Java程序一样简单。

e959003ea4fe6fbbf328ef50cc00aabe.png

本框架实现了基本的容器类,字符串处理类,时间处理类,IO输入输出流类,网络类,日志框架类,邮件解析框架等,OS高级的API如 异步IO和进程间通信等还未涉及。

目前的特点:

1、容器类包括ARRAY、HASHMAP、VECTOR等基本容器,有内存池机制,可以使用多种方式的iterator遍历。

2、时间类包括Time、Locale、TimeFormat等,时间精确到毫秒,有日期和LOCALE处理,有时间格式化处理,线程安全。

3、IO输入输出流分输入输出流设备和读写器的设计,输入输出设备即InputStream和OutputStream,读写器即Reader和Writer。可对任何对象和设备进行IO操作。

4、网络的设计是InetAddress设计完全兼容IPv6,用户不必关心自己使用的是何种协议族。网络服务器是SocketAcceptor监听器,它监听端口accept到连接后创建Socket对象,用户可由此创建流设备进行读写操作。网络客户端则对应的使用SocketConnector连接器来连接指定的网络服务器,成功后也创建Socket对象来处理。(类似ACE的设计)

5、日志框架则吸收Log4j和Log4cplus的设计,使用不同Appender来输出日志,使用各种LayoutPattern类格式化输出。

6、邮件解析框架完全使用面向对象技术设计,使用C++语言开发的用于邮件解析和组装的库。它提供了一些类用来解析和组装Internet邮件,如MimeMessage和MimeBodyPart,用于Internet邮件协议实现并且遵循RFC822和RFC2045规范。这些API库用于应用程序的开发。本邮件解析库参考JavaMail的结构设计,有与之类似的接口和类。本解析库用到基础库Fast库参考ACE库和STL、Java Framework库设计,包含一些字符串处理和容器的类。设计它们的目的是为了简化库的接口,并且尽量与Java库的接口兼容,同时使用完全标准的C++特性,使库更易维护更稳固。下一版本将支持流数据解析功能。

7、服务器框架库,基本引入Postfix的进程调度机制,可大大提高系统的运行稳定性,同时简化运行的维护成本。同时服务器框架已封装了大部分基础的功能,如访问权限控制、协议处理等,所以开发应用或扩展将更加简单,也利于团队协同开发。

考虑到未来支持 应用服务器软件、普通软件、PocketPC软件、游戏等应用软件的开发,以及跨平台的特性,正在重新设计此框架,以使其具备跨平台和支持多个编译器及开发工具,以及支持小内存应用等,并同时希望未来的版本加入开源组织以使之更为壮大。

谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值