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;
    }
  • 相关阅读:
    JS 做的鼠标放大镜(初级)
    用JS做关灯游戏(初级)
    JS 做时钟
    Magic Powder
    (记忆化搜索)Jury Compromise (poj 1015)
    (求凹包) Bicycle Race (CF 659D) 简单题
    Phalanx (hdu 2859)
    第十四个目标 (fzu)
    (树形dp)鸡毛信问题 (fzu 1227)
    (最大m子段和) Max Sum Plus Plus (Hdu 1024)
  • 原文地址:https://www.cnblogs.com/code-style/p/3503917.html
Copyright © 2011-2022 走看看