软件架构师关心软件质量,而全局变量严重影响软件的可维护性,故软件架构师需要关注全局变量。
由于静态成员变量和全局变量性质完全一样,所以本文对静态成员变量也完全适用。慎用全局变量已经是业界公认的观点,实际操作中有:滥用全局变量和不用全局变量。一般而言,不用全局变量的危害比用全局变量的危害小的多,新手尤其如此。
全局变量的危害:
1,影响可理解性。如:多处代码修改了某个全局变量,当此全局变量异常时,很难找到错误根源。
2,影响可修改性。如:当修改了此全局变量时,所以直接或间接使用了此代码都可能引起错误。
3,影响可复用性。如:一个类可能因为一两个全局变量而不能被别的代码使用。
以下情况下使用全局变量危害小:
1,每个全局变量只有一两个函数可以修改。
由于静态成员变量和全局变量性质完全一样,所以本文对静态成员变量也完全适用。慎用全局变量已经是业界公认的观点,实际操作中有:滥用全局变量和不用全局变量。一般而言,不用全局变量的危害比用全局变量的危害小的多,新手尤其如此。
全局变量的危害:
1,影响可理解性。如:多处代码修改了某个全局变量,当此全局变量异常时,很难找到错误根源。
2,影响可修改性。如:当修改了此全局变量时,所以直接或间接使用了此代码都可能引起错误。
3,影响可复用性。如:一个类可能因为一两个全局变量而不能被别的代码使用。
以下情况下使用全局变量危害小:
1,每个全局变量只有一两个函数可以修改。
2,不要跨模块使用全局变量。全局变量只被一个模块的各类使用,且此模块的各类单独没有复用价值,此模块的全局变量只在一两个函数中初始化。如果某个类有复用价值,则此类复制或引用此变量。
比较合理的办法:
某个模块的全局变量集中放在某个类中的私有静态成员变量中, 通过开放友元函数控制访问权限
2021年目标:完成新书《闻缺陷则喜》,本博客右上公告有下载、阅读链接。