一个对象的形式。外部模块使用这个类的实例来引用封装在里面的成员函数个变量。把功能相似、相关的函数分成一组然后封装在一起使接口间的关系清晰了很多。类的成员函数和成员变量有公有和私有之分。对于公有函数和变量外部模块可以直接调用对于私有函数和变量外部模块则不能直接调用。利用这种特性可以把一些只在类里面使用的函数定义为私有函数把外部模块需要直接调用的函数定义为公有函数。类似于DLL的导出函数Export这样模块之间的直接接触就会进一步减小独立性更进一步增加。
2全局变量接口
全局变量接口是一种不提倡的方式。虽然它使用起来确实很过瘾。全局变量多了非常容易出问题。任何地方都可能会对全局变量进行赋值变量的可控性大大降低不知道什么时候变量的值就被莫名其妙地改掉了。当然只要不被那些模块执行的先后顺序和循环语句弄昏头还是可以使用全局变量的。虽然不提倡使用但是有些地方使用全局变量与是不可避免的而且有时候可以减少很多麻烦。使用全局变量的时候需要注意一点读取变量的多少和位置对程序稳定性的影响并不很大关键是尽量让赋值的地方单一改变变量的次数和位置应尽量得到控制。
3Wi
dows消息接口
Wi
dows消息接口是一种特殊的接口形式它是基于Wi
dows操作系统的消息机制。这种接口形式适合于应用程序之间。应用程序是相对独立的模块如果这两个模块需要通信则消息接口就是一种理想型的选择。这种接口类似于函数接口只不过通过操作系统的消息机制来中转一下。Wi
dows消息接口也是一种接口方式特别是DLL和EXE之间经常用到。在DLL与EXE之间通信使用消息是一种优势多个应用程序虽然调用同一个DLL但是它们都拥有独立的模块副本。这时候如果这些模块副本都需要让同一个应用程序做一件事时就不好处理因为DLL的重要性和应用程序保护机制导致这些模块副本无法直接调用同一个应用程序的执行模块。这时候就可以通过消息的方式来解决。发送消息是基于窗口句柄的只要得到这个窗口句柄不同的DLL副本都向同一个窗口句柄发送消息自然所有的消息都可以被同一个应用程序接收。
以上3种接口方式以函数接口为优先进行考虑以增强模块的独立性和可读性。
44控管规则文件结构设计
控管规则文件用来存储控管规则数据命名为aclcfg该数据文件为二进制文件。
f441控管规则文件需要存储的内容
控管规则文件需要存储的内容如下
1系统设置
2控管设置
3控管规则附加数据授权访问的远端网络IP地址记录
1控管规则记录结构
控管规则记录结构说明
1规则编号r