zoukankan      html  css  js  c++  java
  • 之前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;
    }
  • 相关阅读:
    u Calculate e
    Elevator
    骑士走棋盘
    Number Sequence
    老鼠走迷宫
    Let the Balloon Rise
    A+B Problem II
    Three-Color Flag
    Noldbach problem
    Almost Prime
  • 原文地址:https://www.cnblogs.com/code-style/p/3503917.html
Copyright © 2011-2022 走看看