减少全局变量污染
减少全局变量污染
在多人协作开发程序时,如果定义过多的全局变量,有可能造成全局变量冲突,也就是全局变量污染问题。
解决全局变量污染问题办法:
在应用程序中创建唯一的一个全局变量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;
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/18852851