zoukankan      html  css  js  c++  java
  • 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 抛出异常,提高可移植性
      • 弱耦合性:尽量不使用标准库中的类和函数,提高可移植性
  • 相关阅读:
    今天做了个小项目
    了解类与对象
    装机时键盘选择失误?教你修改kali Linux键盘到美式。
    一些模塊的用法
    你也是全员模块?
    金额保留2位小数 xx.00
    maven项目统一管理版本
    启动项目报错——找不到或无法加载主类 io.vertx.core.Launcher
    以jar包方式启动
    支付业务接口功能(二)
  • 原文地址:https://www.cnblogs.com/bky-hbq/p/13623799.html
Copyright © 2011-2022 走看看