1.单体必须有Setup()和Destroy()函数
2.单体不得在构造函数中分配资源,不得在析构中释放资源,应显式使用Setup和Destroy函数,注意Destroy函数要clear清空stl容器.
3.内存检查器单体可以凌驾于此规定之上,不受约束.
4.由于单体自身的释放由C++机制保证,所以内存检查器单体不用负责其他单体自身的释放问题.
5.由于其他单体在内存检查器单体之前构造,必然在内存检查器单体之后析构,对内存检查器的逻辑无影响,所以允许其他单体在内存检查器单体之前构造,不保证或规定单体间的初始化顺序.
6.由于强制Setup和Destroy的调用,内存检查器单体将严格监督其他单体在其内部的资源的分配释放出现的问题.
7.一个2进制模块分配的内存不得在其他模块释放.
8.内存检查器单体由程序员直接负责监督.
推论:
1.如内存检查器单体报警则必有模块违反上述准则.