之前C#代码的重新设计

/*

我用python重构了一把这个代码

大家的反应似乎是过度设计了

好吧,我决定不那么激进,采用更中庸一些的重构



我也有些疑惑:

是否如果重构后的代码比重构前要多,就算过度了呢?

*/

void main()

{

    Queue queue = new Queue();

    while(Message message=queue.Get())

    {

        process(message);

    }

}



void process(Message message)

{

    if(isAllowSend(message, setChargeFlag) == true)

    {

        setSendFlag(message);

    }

    

    // 记录每一个进入系统的message信息

    logMessage(message);

}



bool isAllowSend(Message message, setChargeFlag)

{

    // 消息发送者在白名单中

    if(message.sender in getWhileList())

    {

        return true

    }

    

    // 消息发送者在黑名单中

    if(message.sender in getBLackList())

    {

        return false;

    }

    

    // 下面这许多if是判断什么的,我不记得了

    if(...) 

    {

        return true;

    }

    

    if(...)

    {

        return false;

    }



    // 这些代码来自setSendFlag

    // 在setSendFlag里return

    // 就相当于在这里return false

    if(...)

    {

        return false;

    }

    

    if(...)

    {

        return false;

    }

    

    

    // 设置收费标志

    setChargeFlag(message);

    return true;

}



void setSendFlag(Message message)

{

    message.allowSend = true;

    saveMessage(message);

    // 设置Message属性,保存它,由别的子系统进行发送

}



void setChargeFlag(Message message)

{

    message.isCharge = true;

}

 

你可能感兴趣的:(C#)