DTO的应用

来源:互联网 发布:电话轰炸机原理知乎 编辑:程序博客网 时间:2024/05/21 11:09

前几天看了DTO的用法, 根据stackoverflow的资料引导, 看完了<<Clean code>>第六章, 专门叙述DTO的章节.

今天在工程中用到一个DTO, 刚开始动手时,还习惯性的想写个struct.

转念一想,前几天白看书了?  就现炒现卖做个DTO玩玩.

感觉还不错啊, 比纯的struct好用多了.


/// @file       DTO_btn_get_handset_msg_time_control.h/// @brief      数据传送对象 - 控制短信验证对话框的发手机验证码的时间, ///             60秒才可以向手机再次发送验证码#ifndef __DTO_btn_get_handset_msg_time_control_h__#define __DTO_btn_get_handset_msg_time_control_h__class CDTO_btn_get_handset_msg_time_control{public:    CDTO_btn_get_handset_msg_time_control();    virtual ~CDTO_btn_get_handset_msg_time_control();public:    void clear();    void SetDoAgain(BOOL bEnable);    BOOL IsCanDoAgain(std::wstring& strMsg);private:    BOOL m_bCanDoAgain;    DWORD m_dwTickLast;    const int m_iTimeSpan_DoAgain;};#endif // __DTO_btn_get_handset_msg_time_control_h__

/// @file       DTO_btn_get_handset_msg_time_control.cpp#include "stdafx.h"#include "DTO_btn_get_handset_msg_time_control.h"CDTO_btn_get_handset_msg_time_control::CDTO_btn_get_handset_msg_time_control() :m_iTimeSpan_DoAgain(60){}CDTO_btn_get_handset_msg_time_control::~CDTO_btn_get_handset_msg_time_control(){}void CDTO_btn_get_handset_msg_time_control::clear(){    m_bCanDoAgain = TRUE;    m_dwTickLast = GetTickCount();}void CDTO_btn_get_handset_msg_time_control::SetDoAgain(BOOL bEnable){    m_bCanDoAgain = bEnable;    m_dwTickLast = GetTickCount();}BOOL CDTO_btn_get_handset_msg_time_control::IsCanDoAgain(std::wstring& strMsg){    long  lTimeSpan = 0;    DWORD dwSecondLeft = 0;    /// 60S后可以重新开始    strMsg = L"";    if (!m_bCanDoAgain)    {        lTimeSpan = ::GetTickCount() - m_dwTickLast;        if ((lTimeSpan - m_iTimeSpan_DoAgain * 1000) >= 0)        {            m_bCanDoAgain = TRUE;        }        else        {            lTimeSpan = long(0) + m_iTimeSpan_DoAgain * 1000 - lTimeSpan;            dwSecondLeft = (DWORD)(lTimeSpan / 1000);            if (dwSecondLeft <= 0)                dwSecondLeft = 1; ///< 0.几秒算1秒            strMsg = ns_base::StringFormatV(L"%d秒...", dwSecondLeft);        }    }    return m_bCanDoAgain;}


0 0
原创粉丝点击