-
遵循经典设计准则:
DTLib
中的所有类位于单一的继承树 -
改进的关键点
-
Exception
类继承自Object
类:堆空间中创建异常对象失败时,返回NULL
指针 -
新增
InvalidOperationException
类:成员函数调用时,如果状态不正确则抛出异常 -
SmartPointer
类继承自Object
类:堆空间中创建智能指针对象失败时,返回NULL
指针
-
-
Demo
//SmartPointer.h #include "Object.h" class SmartPointer: public Object //Exception.h class InvalidOperatorException : public Exception { public: //无参构造 InvalidOperatorException() : Exception(0,0,0) {} //有参构造 InvalidOperatorException(const char* message) : Exception(message,0,0) {} InvalidOperatorException(const char* file,int line) : Exception(0,file,0) {} InvalidOperatorException(const char* message,const char* file,int line) : Exception(message,file,line) {} //拷贝构造 InvalidOperatorException(const InvalidOperatorException& e) : Exception(e) {} //"=" InvalidOperatorException& operator= (const InvalidParameterException& e){ Exception::operator =(e); return *this; } };
-
DTLib 的开发方式和注意事项
- 迭代开发
- 单一继承树:所有类都继承自
Object
,规范堆对象创建时的行为 - 只抛异常,不处理异常:使用
THROW_EXCEPTION
抛出异常,提高可移植性 - 弱耦合性:尽量不使用标准库中的类和函数,提高可移植性