论编程中的全局实体与局部实体。

        所谓局部实体,就是指该实体是其上级实体的一部分,上级实体消灭,该部分实体肯定也消灭,双方之间是包含关系,上级实体的功能由下级实体的功能组成。
        所谓全局实体,就是指该实体与其他实体是并列关系,该实体消灭,其他实体不会因之而消灭,同样其他实体消灭,该实体也不会因之而消灭,各实体之间互相对立,彼此互相协作发挥各自的功能。
        全局实体与局部实体的区分。就一个程序的代码而言,如果不算类这种数据与方法的复合体(C++的类与对象)的话,简单实体实际只包括两大部分:一是数据(全局变量),二是函数(对数据的处理操作)。从这个角度讲,函数和函数外的数据(变量)都是全局实体;只有函数内的变量是局部实体。
        实际中,真正复杂的一种情况是动态分配内存生成的实体,在C语言中就是用malloc系列函数分配内存的变量,在C++中就是用new操作符生成的变量,这些变量一般在函数体内动态生成,这些变量是全局实体,因为他们并不随着函数运行的结束而消灭,在函数结束后还能继续存在于程序中并发挥作用(只需要把他们的指针传出来即可使用)。
        现实中,一个人长的胳膊、脑袋等是局部实体,因为如果人死了,胳膊、脑袋等也就死了。但是,一个人栽的树,养的猫狗等宠物就是全局实体,它们不随着人的死亡而死亡,在人死亡后继续存在。上面的实例中,胳膊、脑袋就是局部实体,树、猫狗就是动态内存生成的全局实体。
关于简单实体与复合实体。这与现实社会是一致的。人、单位等是复合实体。复合实体外的各种数量,以及喝水,吃饭,睡觉等动作等等是简单实体。
        何时使用全局实体,何时使用局部实体?首先,所有的函数都是全局的(除了函数内部的函数),这样全局实体与局部实体的使用问题就简化成了全局变量与局部变量的使用问题。说白了,还是看具体的实体间的真实关系,是包含关系,还是并列关系;该是局部的就局部,该是全局的就全局。
        所谓面向接口编程与尽量不要使用全局变量,是针对编写独立的、松耦合的、可复用的模块(最小的模块是函数)而言,而不是针对整个程序而言。整个程序就是全局对象之间的协作共同完成程序的功能。但是模块内部的编写就应当面向接口编程,尽量不要使用全局变量,以增加模块的稳定性与可复用性,避免模块受到外界干扰而需要不断的修改代码的沉重负担。
       全局变量使用注意事项:(1)对整个程序而言,就是众多全局实体互相配合共同完成一项工作,不存在限制使用全局实体的说法。(2)限制全局变量的使用,仅限于编写模块内部的代码,而且模块内部的代码也无法全部避免使用全局变量。(3)对于模块内部的代码而言:全局变量尽量少用;涉及多个全局变量时能封装的封装,或者能聚集在一个文件里最好;但不要为封装而封装,为聚集而聚集,要根据实际情况处理。(4)别忘了动态生成的一般是全局的,除非有人非得把局部的也动态生成。(5)main函数里的也是局部变量,而非全局变量,除非是动态生成的。

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值