软件架构师关心软件质量,而全局变量严重影响软件的可维护性,故软件架构师需要关注全局变量。
由于静态成员变量和全局变量性质完全一样,所以本文对静态成员变量也完全适用。慎用全局变量已经是业界公认的观点,实际操作中有:滥用全局变量和不用全局变量。一般而言,不用全局变量的危害比用全局变量的危害小的多,新手尤其如此。
全局变量的危害:
1,影响可理解性。如:多处代码修改了某个全局变量,当此全局变量异常时,很难找到错误根源。
2,影响可修改性。如:当修改了此全局变量时,所以直接或间接使用了此代码都可能引起错误。
3,影响可复用性。如:一个类可能因为一两个全局变量而不能被别的代码使用。
以下情况下使用全局变量危害小:
1,每个全局变量只有一两个函数可以修改。
由于静态成员变量和全局变量性质完全一样,所以本文对静态成员变量也完全适用。慎用全局变量已经是业界公认的观点,实际操作中有:滥用全局变量和不用全局变量。一般而言,不用全局变量的危害比用全局变量的危害小的多,新手尤其如此。
全局变量的危害:
1,影响可理解性。如:多处代码修改了某个全局变量,当此全局变量异常时,很难找到错误根源。
2,影响可修改性。如:当修改了此全局变量时,所以直接或间接使用了此代码都可能引起错误。
3,影响可复用性。如:一个类可能因为一两个全局变量而不能被别的代码使用。
以下情况下使用全局变量危害小:
1,每个全局变量只有一两个函数可以修改。
2,不要跨模块使用全局变量。全局变量只被一个模块的各类使用,且此模块的各类单独没有复用价值,此模块的全局变量只在一两个函数中初始化。如果某个类有复用价值,则此类复制或引用此变量。
比较合理的办法:
某个模块的全局变量集中放在某个类中的私有静态成员变量中, 通过开放友元函数控制访问权限
2021年目标:完成新书《闻缺陷则喜》,本博客右上公告有下载、阅读链接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~