• 4 类族结构的改进


    • 遵循经典设计准则: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 抛出异常,提高可移植性
      • 弱耦合性:尽量不使用标准库中的类和函数,提高可移植性
  • 相关阅读:
    安装maven报错及解决
    Servlet包导入
    理解SQL SERVER的逻辑读,预读和物理读以及索引
    第六章(函数)编程题二
    第六章(函数)编程题一
    第五章(使用对象) 编程题一
    第三章(循环) 编程题 4
    第四章(数组) 编程题 1
    第三章(循环) 编程题 3
    低功耗蓝牙 ATT/GATT/Service/Characteristic 规格解读
  • 原文地址:https://www.cnblogs.com/bky-hbq/p/13623799.html
Copyright © 2020-2023  润新知