软件架构师关心软件质量,而全局变量严重影响软件的可维护性,故软件架构师需要关注全局变量。
由于静态成员变量和全局变量性质完全一样,所以本文对静态成员变量也完全适用。慎用全局变量已经是业界公认的观点,实际操作中有:滥用全局变量和不用全局变量。一般而言,不用全局变量的危害比用全局变量的危害小的多,新手尤其如此。
全局变量的危害:
1,影响可理解性。如:多处代码修改了某个全局变量,当此全局变量异常时,很难找到错误根源。
2,影响可修改性。如:当修改了此全局变量时,所以直接或间接使用了此代码都可能引起错误。
3,影响可复用性。如:一个类可能因为一两个全局变量而不能被别的代码使用。
以下情况下使用全局变量危害小:
1,每个全局变量只有一两个函数可以修改。

2,不要跨模块使用全局变量。全局变量只被一个模块的各类使用,且此模块的各类单独没有复用价值,此模块的全局变量只在一两个函数中初始化。如果某个类有复用价值,则此类复制或引用此变量。


比较合理的办法:

某个模块的全局变量集中放在某个类中的私有静态成员变量中, 通过开放友元函数控制访问权限

posted on   闻缺陷则喜何志丹  阅读(21)  评论(0编辑  收藏  举报  
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~



点击右上角即可分享
微信分享提示