• 关于系统模块设计的一点疑问?


      哎,昨晚又和女朋友吵架了,心太累!!

      一个刚参加工作的程序员。

      好了,昨天在做模块设计的时候有点疑问,不知道合不合适,就是“一个模块的设计需不需要考虑另外一个模块的方便而提供一些接口呢?”,(在这里我用A模块和B模块)。总是感觉如果A模块能提供一些接口,那样B模块就会少写很多代码,而且代码结构也会看起来很清晰,不用写很多重复的代码。但是,对于A模块而言,对于自身的需求,是完全不需要用到那些接口的。举个很简单的例子

    /*
      *    内部数据层
      */
     class A
     {
     public:
         int getChannelNum();
         void setChannelNum(int iChannelNum);
     
     private:
         int m_iChannelNum;
         ModuleType moduleType;//一种枚举类型
        
    };
     /*
      *    中间接口层
      */
    int callGetAIRange(cSJON * pRet);
    
    int callGetDIRange(cSJON * pRet);

     A模块存在于内部数据层用到的数据类型都是int  float double  等需要进行计算的类型,但是外部模块需要调用中间数据层B模块来获取处理结果,其中需要用到字符串类型的channel,而且假设这种转换并不是简单的itoa,而是需要做处理,需要增加一些前缀字符,数值也需要进行一些转换。

    1,  先说我的第一种做法,A模块增加 char * getStrChannelNum();专门用于处理这样的转换事情。但是这个接口在内部是不会有其他人去调的。所以加上又感觉像异类一样。

    2,  第二种做法就是B模块增加转换的代码,相当于每个B模块中大多数的函数内部都得加上。感觉冗余太大。

    不知道能否描述清楚。很多问题很纠结,还需要请教。

  • 相关阅读:
    Codeforces 474B. Worms
    Codeforces 577A
    Codeforces 455A
    Codeforces 540A
    Codeforces 832A. Sasha and Sticks
    51Nod 1137 矩阵乘法
    51Nod 1118 机器人走方格
    Tomcat部署项目的三种方式
    【Linux】CentOS7下安装JDK详细过程
    Linux上安装rz和sz命令
  • 原文地址:https://www.cnblogs.com/techdreaming/p/4925270.html
Copyright © 2020-2023  润新知