更新界面模式

更新界面模式
举例:
用户可以选择或填写若干条件: 关键字, 日期范围, 以及若干其他选项.
当用户填写或修改某些条件后立刻更新界面.


如何才能得到比较高的性能?
1. 分析需要更新的界面可以分成哪几块, 不需要经常更新的部分放在一起, 数据获取速度快的放在一起, 需要经常更新而且速度比较慢的(比如: 集合)放在一起.
2. 分析每个部分的更新和哪些条件关联.
3. 分析条件, 每当条件修改时, 和前次条件比较看范围是变窄还是变宽, 如果范围变窄, 不用重新获取数据了.

举例:

代码
void UpdateUI()
{
   
bool isKeywordsChanged = ...;
   
bool isDateRangeChanged = ...;

   
if ( isKeywordsChanged  )
   {
    RefreshDataFromDiskOrServer();
    
return;
   }

   
if ( isDateRangeChanged )
   {
    
bool isDateRangeNarrower = ...;

    
if( isDateRangeNarrower )
    {
        RefreshDataFromMemory();
        
return;
    }

    
bool isStartDateEarlier = ...;

    ...

   }
}


 

原文地址:https://www.cnblogs.com/mrfangzheng/p/1667139.html