减少全局变量污染

减少全局变量污染

在多人协作开发程序时,如果定义过多的全局变量,有可能造成全局变量冲突,也就是全局变量污染问题。

解决全局变量污染问题办法:

在应用程序中创建唯一的一个全局变量record容器,把应用程序中所有的全局变量都定义在这个全局变量record容器中,将显著降低与其他应用程序产生冲突的概率,应用程序也会变得更容易阅读。

通过这个应用程序唯一的全局变量容器就可以访问到所有的全局变量

  // 全局变量容器
  TGlobalVar = record
    Servers: TDictionary<string, TServer>; // 代理服务字典
    HealthServers: TDictionary<string, TServer>; // 健康的代理服务字典
    Rewrite: TDictionary<string, TRewrite>; // 重定向字典,fromurl做key
    RoundRobinIndex: Integer; // 轮转序号
    LoadBalanceEnum: TLoadBalanceEnum; // 负载均衡 算法类型
    Critical: TCriticalSection; // 临界保护
    JsonObject: TJsonO; // server.json json对象
    HttpClientPool: THttpclientPool; // THttpClientSocket池
    CheckServerHelth: TCheckServerHealth; // 检查服务健康
  end;

//应用程序中唯一的一个全局变量
var
  GlobalVar: TGlobalVar;

示例:

class procedure TFunc.NewHttpclientPool;
begin
  GlobalVar.HttpClientPool := THttpclientPool.Create
    (GlobalVar.JsonObject.I['httpclientpoolsize']);
  GlobalVar.HttpClientPool.init;
end;

 

posted @ 2025-04-29 07:42  delphi中间件  阅读(137)  评论(0)    收藏  举报